diff --git a/apps/docs/content/api/models.mdx b/apps/docs/content/api/models.mdx index 487b82c3..1c2bab43 100644 --- a/apps/docs/content/api/models.mdx +++ b/apps/docs/content/api/models.mdx @@ -23,7 +23,7 @@ hideTableOfContents: true - + @@ -154,8 +154,10 @@ hideTableOfContents: true ## Параметры бота - [Новый бот](POST /bots) +- [Список ботов](GET /bots) - [Информация о боте](GET /bots/{id}) - [Редактирование бота](PUT /bots/{id}) +- [Удаление бота](DELETE /bots/{id}) - [Саморегистрация вебхука бота](PUT /bot/webhook) - [Ротация токена бота](POST /bots/{id}/recreate_token) - [Ротация собственного токена бота](POST /bot/recreate_token) diff --git a/apps/docs/content/guides/bots/setup.mdx b/apps/docs/content/guides/bots/setup.mdx index 9ad57d5d..cdde57ee 100644 --- a/apps/docs/content/guides/bots/setup.mdx +++ b/apps/docs/content/guides/bots/setup.mdx @@ -55,6 +55,8 @@ related: Передайте параметры бота в объекте `bot.webhook`: имя, никнейм, Webhook URL, список событий и команды. Никнейм должен заканчиваться на `_bot`. + + Тип бота — в один или несколько чатов — задаётся полем `single_chat` и только при создании: изменить его потом нельзя, как и тип бота в интерфейсе. Ограничение «в один чат» распространяется только на беседы и каналы, треды и личные сообщения не в счёт. В ответе вы получите `access_token` бота — сразу сохраните его. Повторно получить токен вы сможете только через интерфейс (вкладка **API** настроек бота), там же его можно перевыпустить. Вместе с токеном придёт `id` бота (его `user_id`). @@ -92,6 +94,13 @@ related: - **Все участники (кроме гостей)** - **Публичный бот** +### Настройка через API + +Эти доступы можно задать не только в интерфейсе, но и через API — методом [Редактирование бота](PUT /bots/{id}) или сразу при создании: + +- **Кто может редактировать настройки бота** — поле `can_edit` (роли `admin` и `chat_owners`). Создатель имеет доступ всегда, поэтому в поле перечисляются только дополнительные роли, а пустой массив означает «только создатель» +- **Кто может добавлять бота в чаты** — поле `who_can_add` (`creator`, `creator_admin`, `creator_admin_user`, `anyone`) + ## Настройка вебхуков и API diff --git a/apps/docs/content/guides/cli/installation.mdx b/apps/docs/content/guides/cli/installation.mdx index ba06722a..80f602fc 100644 --- a/apps/docs/content/guides/cli/installation.mdx +++ b/apps/docs/content/guides/cli/installation.mdx @@ -67,7 +67,7 @@ pachca doctor # ✔ Конфиг ~/.config/pachca/config.toml (права: 600) # ✔ Профиль personal (user: Иван Иванов) # ✔ Токен действителен (11 скоупов) -# ✔ CLI v2026.6.3 (актуальная версия) +# ✔ CLI v2026.7.0 (актуальная версия) ``` ## Обновление diff --git a/apps/docs/content/guides/n8n/resources.mdx b/apps/docs/content/guides/n8n/resources.mdx index dfc9d8f3..fb476ca6 100644 --- a/apps/docs/content/guides/n8n/resources.mdx +++ b/apps/docs/content/guides/n8n/resources.mdx @@ -31,7 +31,7 @@ related: | 8 | [Profile](#profile) | 6 | Мой профиль: информация, аватар, статус | | | 9 | [OAuth](#oauth) | 1 | Информация о токене | да | | 10 | [Task](#task) | 5 | Задачи: полный CRUD | | -| 11 | [Bot](#bot) | 8 | Боты: создание, получение, редактирование, вебхук, ротация токена, события | | +| 11 | [Bot](#bot) | 10 | Боты: создание, получение, список, редактирование, удаление, вебхук, ротация токена, события | | | 12 | [File](#file) | 1 | Загрузка файлов через S3 | | | 13 | [Form](#form) | 1 | Модальные формы | | | 14 | [Custom Property](#custom-property) | 1 | Дополнительные поля | да | @@ -208,13 +208,15 @@ related: ## Bot -Боты: создание, получение, редактирование, саморегистрация вебхука, ротация токена, история и удаление событий. +Боты: создание, получение, список, редактирование, удаление, саморегистрация вебхука, ротация токена, история и удаление событий. | Операция | API | |----------|-----| | Create | [Новый бот](POST /bots) | | Get | [Информация о боте](GET /bots/{id}) | +| Get Many | [Список ботов](GET /bots) | | Update | [Редактирование бота](PUT /bots/{id}) | +| Delete | [Удаление бота](DELETE /bots/{id}) | | Update Webhook | [Саморегистрация вебхука бота](PUT /bot/webhook) | | Recreate Token | [Ротация токена бота](POST /bots/{id}/recreate_token) | | Recreate Token Self | [Ротация собственного токена бота](POST /bot/recreate_token) | diff --git a/apps/docs/content/guides/webhook/events.mdx b/apps/docs/content/guides/webhook/events.mdx index e58f64c9..67e1aa91 100644 --- a/apps/docs/content/guides/webhook/events.mdx +++ b/apps/docs/content/guides/webhook/events.mdx @@ -94,3 +94,11 @@ related: Payload содержит обнаруженные ссылки. Полное сообщение получите методом [Информация о сообщении](GET /messages/{id}) по `message_id`. + +## Видеозвонки + +Вебхук отправляется для видеозвонков в чатах, где состоит бот, и в тредах этих чатов. Поле `event` в payload различает три события: `started` (звонок начался), `finished` (звонок завершился) и `recording_ready` (запись готова). Набор полей payload зависит от события. + + + +Для события `finished` payload содержит список участников с временем подключения и выхода, для `recording_ready` — ссылку на файл записи, её размер и длительность. Полные данные участников получите методом [Информация о сотруднике](GET /users/{id}) по каждому `user_id`, а чат — методом [Информация о чате](GET /chats/{id}) по `chat_id`. diff --git a/apps/docs/content/updates/2026-07-07.md b/apps/docs/content/updates/2026-07-07.md new file mode 100644 index 00000000..1da5afe4 --- /dev/null +++ b/apps/docs/content/updates/2026-07-07.md @@ -0,0 +1,24 @@ +--- +date: "2026-07-07" +title: "Список и удаление ботов, права доступа бота, вебхуки видеозвонков" +--- + +Появились методы для управления ботами. Метод [Список ботов](GET /bots) возвращает ботов, которые вы можете редактировать, с поиском по имени. Метод [Удаление бота](DELETE /bots/{id}) удаляет бота: прежний токен сразу инвалидируется, бот исключается из чатов, его исходящий вебхук удаляется. Оба метода требуют скоуп `bots:read` и `bots:write` соответственно. + +- [Список ботов](GET /bots) +- [Удаление бота](DELETE /bots/{id}) + +При создании и редактировании бота добавились настройки прав доступа: `who_can_add` — кто может добавлять бота в чаты (`creator`, `creator_admin`, `creator_admin_user`, `anyone`), и `can_edit` — роли, которым, помимо создателя, разрешено редактировать настройки бота (`admin`, `chat_owners`). При создании также можно передать `single_chat` — ограничить бота одной беседой или каналом (личные чаты и треды в ограничение не входят). Все три поля возвращаются в объекте бота. + +- [Новый бот](POST /bots) +- [Редактирование бота](PUT /bots/{id}) + +Появился новый тип исходящего вебхука — события видеозвонков: `video_call_started`, `video_call_finished` и `video_call_recording_ready`. Вебхук приходит для видеозвонков в чатах, где состоит бот. Подробнее о payload — в гайде [Настройка и типы событий](/guides/webhook/events#videozvonki). + +В журнале аудита появился тип события `bot_deleted` — удаление бота. Его можно фильтровать параметром `event_key`. + +- [Журнал аудита событий](GET /audit_events) + +В поиске сотрудников у параметра `sort` появилось значение `creation` — сортировка по дате создания (в дополнение к `by_score` и `alphabetical`). + +- [Поиск сотрудников](GET /search/users) diff --git a/apps/docs/data/releases.json b/apps/docs/data/releases.json index cda42003..017932aa 100644 --- a/apps/docs/data/releases.json +++ b/apps/docs/data/releases.json @@ -1,4 +1,92 @@ [ + { + "product": "sdk", + "version": "1.0.26", + "date": "2026-07-07", + "changes": [ + { + "type": "+", + "description": "Метод `Список ботов` (`GET /bots`) — список ботов с поиском по имени" + }, + { + "type": "+", + "description": "Метод `Удаление бота` (`DELETE /bots/{id}`)" + }, + { + "type": "+", + "description": "У бота поля прав доступа: `who_can_add`, `can_edit`, `single_chat`" + }, + { + "type": "+", + "description": "Новый payload исходящего вебхука `VideoCallWebhookPayload` и события `video_call_started`, `video_call_finished`, `video_call_recording_ready`" + }, + { + "type": "+", + "description": "Журнал аудита: новый тип события `bot_deleted`" + }, + { + "type": "+", + "description": "Поиск сотрудников (`GET /search/users`): значение сортировки `creation` (по дате создания)" + } + ] + }, + { + "product": "cli", + "version": "2026.7.0", + "date": "2026-07-07", + "changes": [ + { + "type": "+", + "description": "`pachca bots list` — список ботов с поиском по имени (`--query`)" + }, + { + "type": "+", + "description": "`pachca bots delete` — удаление бота по его `id`" + }, + { + "type": "+", + "description": "`pachca bots create` и `bots update` — права доступа бота: `--who-can-add`, `--can-edit`, `--single-chat`" + }, + { + "type": "+", + "description": "`pachca search users` — значение сортировки `--sort creation` (по дате создания)" + } + ] + }, + { + "product": "n8n", + "version": "2.0.14", + "date": "2026-07-07", + "changes": [ + { + "type": "+", + "description": "Bot: новые операции `Get Many` (список ботов) и `Delete`" + }, + { + "type": "+", + "description": "Bot: поля прав доступа `who_can_add`, `can_edit`, `single_chat` в операциях `Create` и `Update`" + }, + { + "type": "+", + "description": "Trigger: события видеозвонков `video_call_started`, `video_call_finished`, `video_call_recording_ready`" + }, + { + "type": "+", + "description": "User: поиск — опция сортировки `Creation` (по дате создания)" + } + ] + }, + { + "product": "generator", + "version": "1.1.9", + "date": "2026-07-07", + "changes": [ + { + "type": "-", + "description": "Kotlin SDK: сериализатор union исходящих вебхуков теперь строится по членам union, а не по захардкоженному списку — новый тип payload подхватывается автоматически (чинит компиляцию при добавлении `VideoCallWebhookPayload`)" + } + ] + }, { "product": "generator", "version": "1.1.8", diff --git a/apps/docs/public/.well-known/agent-skills/index.json b/apps/docs/public/.well-known/agent-skills/index.json index b79d60cc..56a1c4fb 100644 --- a/apps/docs/public/.well-known/agent-skills/index.json +++ b/apps/docs/public/.well-known/agent-skills/index.json @@ -41,7 +41,7 @@ "type": "skill-md", "description": "Pachca — управление ботами и вебхуки. Используй этот скилл, когда пользователь хочет настроить бота, создать бота, настроить вебхуки, обработать вебхук, проверить подпись вебхука (X-Signature), обработать callback нажатия кнопки или создать дайджест-бота. НЕ для отправки обычных сообщений, показа форм или модальных окон. Разворачивание ссылок (unfurl) — в pachca-messages.", "url": "/.well-known/skills/pachca-bots/SKILL.md", - "digest": "sha256:c87e4bce24d102b399a60c3c2c49aa6980ea4931ef0f5be446a13c4e1c970b0d" + "digest": "sha256:c019fa2d37fb1703eae7ceb380c4c7e2da209116c77fe191b3340cfc1f6826ad" }, { "name": "pachca-forms", diff --git a/apps/docs/public/.well-known/skills/index.json b/apps/docs/public/.well-known/skills/index.json index b79d60cc..56a1c4fb 100644 --- a/apps/docs/public/.well-known/skills/index.json +++ b/apps/docs/public/.well-known/skills/index.json @@ -41,7 +41,7 @@ "type": "skill-md", "description": "Pachca — управление ботами и вебхуки. Используй этот скилл, когда пользователь хочет настроить бота, создать бота, настроить вебхуки, обработать вебхук, проверить подпись вебхука (X-Signature), обработать callback нажатия кнопки или создать дайджест-бота. НЕ для отправки обычных сообщений, показа форм или модальных окон. Разворачивание ссылок (unfurl) — в pachca-messages.", "url": "/.well-known/skills/pachca-bots/SKILL.md", - "digest": "sha256:c87e4bce24d102b399a60c3c2c49aa6980ea4931ef0f5be446a13c4e1c970b0d" + "digest": "sha256:c019fa2d37fb1703eae7ceb380c4c7e2da209116c77fe191b3340cfc1f6826ad" }, { "name": "pachca-forms", diff --git a/apps/docs/public/.well-known/skills/pachca-bots/SKILL.md b/apps/docs/public/.well-known/skills/pachca-bots/SKILL.md index 2b26ee15..931bceb5 100644 --- a/apps/docs/public/.well-known/skills/pachca-bots/SKILL.md +++ b/apps/docs/public/.well-known/skills/pachca-bots/SKILL.md @@ -108,6 +108,21 @@ Help: `npx -y @pachca/cli --help` | Workflows: `npx -y @pachca/cli guide` > Новый токен возвращается один раз. Self-путь (`POST /bot/recreate_token`) инвалидирует именно тот токен, которым выполнен запрос, — захвати новый токен из ответа в той же операции. +### Найти и удалить бота + +1. Пользовательским токеном (скоуп `bots:read`) получи список ботов, доступных тебе для редактирования: созданных тобой и тех, чьи настройки открывают тебе доступ. Фильтруй по имени параметром `query`, следующую страницу бери из `meta.paginate.next_page`: + ```bash + pachca bots list --query="задач" + ``` + +2. Возьми `id` нужного бота из списка и удали его (скоуп `bots:write`). Доступно администратору, владельцу компании или создателю бота — владельцы чатов удалять бота не могут. Прежний токен инвалидируется сразу, бот исключается из всех чатов, его исходящий вебхук удаляется: + ```bash + pachca bots delete + ``` + +> Удаление необратимо: токен бота инвалидируется сразу, бот исключается из чатов. Событие фиксируется в журнале аудита как `bot_deleted`. + + ### Периодический дайджест/отчёт 1. По расписанию (cron/scheduler): собери данные из своей системы @@ -127,6 +142,7 @@ Help: `npx -y @pachca/cli --help` | Workflows: `npx -y @pachca/cli guide` - Rate limit: ~50 req/sec. On 429 — wait and retry. - `webhook.trigger_on`: allowed values — `commands` (Только на команды (триггер-слова) из commands), `all_messages` (На все сообщения в чатах, где есть бот), `unfurl` (На развёртывание ссылок (link previews)) - `webhook.template_engine`: allowed values — `liquid` (Liquid — условия, циклы и фильтры), `mustache` (Mustache — простая подстановка без логики) +- `webhook.who_can_add`: allowed values — `creator` (Только создатель бота), `creator_admin` (Создатель и администраторы компании), `creator_admin_user` (Создатель, администраторы и участники компании), `anyone` (Любой пользователь, в том числе гости) - `limit`: max 50 - Pagination: cursor-based (limit + cursor) @@ -136,9 +152,11 @@ Help: `npx -y @pachca/cli --help` | Workflows: `npx -y @pachca/cli guide` |--------|------|-------------| | POST | /bot/recreate_token | Ротация собственного токена бота | | PUT | /bot/webhook | Саморегистрация вебхука бота | +| GET | /bots | Список ботов | | POST | /bots | Новый бот | | GET | /bots/{id} | Информация о боте | | PUT | /bots/{id} | Редактирование бота | +| DELETE | /bots/{id} | Удаление бота | | POST | /bots/{id}/recreate_token | Ротация токена бота | | GET | /webhooks/events | История событий | | DELETE | /webhooks/events/{id} | Удаление события | diff --git a/apps/docs/public/.well-known/skills/pachca-bots/references/webhook-events.md b/apps/docs/public/.well-known/skills/pachca-bots/references/webhook-events.md index 5f0fc020..dec3462f 100644 --- a/apps/docs/public/.well-known/skills/pachca-bots/references/webhook-events.md +++ b/apps/docs/public/.well-known/skills/pachca-bots/references/webhook-events.md @@ -44,6 +44,12 @@ Sent when members are added/removed in chats where the bot is a member. Global event (does not require the bot to be in a chat). Events: invite, confirm, update, suspend, activate, delete. +## Video calls + +Sent for video calls in chats where the bot is a member. +Field `event` distinguishes: `started`, `finished` (includes participants and duration), `recording_ready` (includes recording file `url`, `size`, `duration`). +Field `type` is always `video_call`. Common fields: `video_room_id`, `chat_id`, `owner_id`, `thread`. + ## Security 1. Verify signature: `HMAC-SHA256(Signing secret, raw body)` === `Pachca-Signature` diff --git a/apps/docs/public/api/bots/create.md b/apps/docs/public/api/bots/create.md index f5c0a547..59781803 100644 --- a/apps/docs/public/api/bots/create.md +++ b/apps/docs/public/api/bots/create.md @@ -38,6 +38,10 @@ - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `who_can_add: string` — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости + - `can_edit: array of string` — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `single_chat: boolean` (default: false) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется.. Пример: `false` ### Пример @@ -58,7 +62,10 @@ "messages:create" ], "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", - "challenge_key": "challenge" + "challenge_key": "challenge", + "can_edit": [ + "admin" + ] } } ``` @@ -85,7 +92,10 @@ curl "https://api.pachca.com/api/shared/v1/bots" \ "messages:create" ], "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", - "challenge_key": "challenge" + "challenge_key": "challenge", + "can_edit": [ + "admin" + ] } }' ``` @@ -114,6 +124,10 @@ curl "https://api.pachca.com/api/shared/v1/bots" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `"bm90X2FfcmVhbF90b2tlbg"` **Пример ответа:** @@ -141,7 +155,12 @@ curl "https://api.pachca.com/api/shared/v1/bots" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" }, "access_token": "bm90X2FfcmVhbF90b2tlbg" } diff --git a/apps/docs/public/api/bots/delete.md b/apps/docs/public/api/bots/delete.md new file mode 100644 index 00000000..78dbb552 --- /dev/null +++ b/apps/docs/public/api/bots/delete.md @@ -0,0 +1,128 @@ +> Расположение: Методы API → Боты и Webhook +> Краткое содержание: Метод для удаления бота +> Это Markdown-версия конкретной страницы. Для контекста за её пределами (правила API, полный перечень методов, авторизация) ОБЯЗАТЕЛЬНО открой [llms.txt](https://dev.pachca.com/llms.txt) перед ответом — это сэкономит токены и предотвратит неполный ответ. + +# Удаление бота + +**Метод**: `DELETE` + +**Путь**: `/bots/{id}` + +> **Скоуп:** `bots:write` + +Метод для удаления бота. Прежний `access_token` бота сразу инвалидируется, бот исключается из всех чатов, его исходящий вебхук удаляется. + +Удаление доступно создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Владельцы и администраторы чатов удалять бота не могут, даже если им разрешено его редактировать. + +Для удаления бота вам необходимо знать его `id` и указать его в `URL` запроса. + +## Параметры + +### Path параметры + +- `id: integer, int32` (required) — Идентификатор бота + + +## Пример запроса + +```bash +curl -X DELETE "https://api.pachca.com/api/shared/v1/bots/1738816" \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" +``` + +## Ответы + +### 204: There is no content to send for this request, but the headers may be useful. + +### 401: Access is unauthorized. + +**Схема ответа при ошибке:** + +- `error: string` (required) — Код ошибки. Пример: `"invalid_token"` +- `error_description: string` (required) — Описание ошибки. Пример: `"Access token is missing"` + +**Пример ответа:** + +```json +{ + "error": "invalid_token", + "error_description": "Access token is missing" +} +``` + +### 402: Client error + +**Схема ответа при ошибке:** + +- `errors: array of object` (required) — Массив ошибок + - `key: string` (required) — Ключ поля с ошибкой. Пример: `"field.name"` + - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `"invalid_value"` + - `message: string` (required) — Сообщение об ошибке. Пример: `"Поле не может быть пустым"` + - `code: string` (required) — Код ошибки + Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде + - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null` + **Структура значений Record:** + - Тип значения: `any` + +**Пример ответа:** + +```json +{ + "errors": [ + { + "key": "field.name", + "value": "invalid_value", + "message": "Поле не может быть пустым", + "code": "blank", + "payload": null + } + ] +} +``` + +### 403: Access is forbidden. + +**Схема ответа при ошибке:** + +- `error: string` (required) — Код ошибки. Пример: `"invalid_token"` +- `error_description: string` (required) — Описание ошибки. Пример: `"Access token is missing"` + +**Пример ответа:** + +```json +{ + "error": "invalid_token", + "error_description": "Access token is missing" +} +``` + +### 404: The server cannot find the requested resource. + +**Схема ответа при ошибке:** + +- `errors: array of object` (required) — Массив ошибок + - `key: string` (required) — Ключ поля с ошибкой. Пример: `"field.name"` + - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `"invalid_value"` + - `message: string` (required) — Сообщение об ошибке. Пример: `"Поле не может быть пустым"` + - `code: string` (required) — Код ошибки + Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде + - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null` + **Структура значений Record:** + - Тип значения: `any` + +**Пример ответа:** + +```json +{ + "errors": [ + { + "key": "field.name", + "value": "invalid_value", + "message": "Поле не может быть пустым", + "code": "blank", + "payload": null + } + ] +} +``` + diff --git a/apps/docs/public/api/bots/get.md b/apps/docs/public/api/bots/get.md index 8d7e18ee..5bf82e7b 100644 --- a/apps/docs/public/api/bots/get.md +++ b/apps/docs/public/api/bots/get.md @@ -50,6 +50,10 @@ curl "https://api.pachca.com/api/shared/v1/bots/1738816" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости **Пример ответа:** @@ -76,7 +80,12 @@ curl "https://api.pachca.com/api/shared/v1/bots/1738816" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" } } } diff --git a/apps/docs/public/api/bots/list-events.md b/apps/docs/public/api/bots/list-events.md index 11afc448..d7978da8 100644 --- a/apps/docs/public/api/bots/list-events.md +++ b/apps/docs/public/api/bots/list-events.md @@ -131,6 +131,31 @@ curl "https://api.pachca.com/api/shared/v1/webhooks/events?limit=1" \ - `user_id: integer, int32` (required) — Идентификатор отправителя сообщения. Пример: `2345` - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2024-09-18T19:53:14.000Z"` - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1726685594` + - **VideoCallWebhookPayload**: Структура исходящего вебхука о видеозвонке + - `type: string` (required) — Тип объекта. Пример: `"video_call"` + Значения: `video_call` — Для видеозвонков всегда video_call + - `event: string` (required) — Тип события + Значения: `started` — Видеозвонок начался, `finished` — Видеозвонок завершился, `recording_ready` — Запись видеозвонка готова + - `video_room_id: integer, int32` (required) — Идентификатор видеозвонка. Пример: `9012` + - `chat_id: integer, int32` (required) — Идентификатор чата, в котором проходит видеозвонок. Пример: `23438` + - `owner_id: integer, int32` (required) — Идентификатор пользователя, начавшего видеозвонок. Пример: `2345` + - `thread: object` — Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде. + - `id: integer, int32` (required) — Идентификатор треда. Пример: `12345` + - `chat_id: integer, int32` (required) — Идентификатор чата треда. Пример: `67890` + - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому создан тред. Пример: `268092` + - `message_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому создан тред. Пример: `23438` + - `started_at: date-time` — Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished.. Пример: `"2025-05-15T14:30:00.000Z"` + - `finished_at: date-time` — Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished.. Пример: `"2025-05-15T14:45:00.000Z"` + - `duration: integer, int32` — Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи.. Пример: `900` + - `members: array of object` — Список участников звонка. Присутствует для события finished. + - `user_id: integer, int32` (required) — Идентификатор участника. Пример: `2345` + - `joined_at: date-time` (required) — Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` + - `left_at: date-time` (required) — Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка.. Пример: `"2025-05-15T14:45:00.000Z"` + - `recording_id: integer, int32` — Идентификатор записи. Присутствует для события recording_ready.. Пример: `4567` + - `file_id: integer, int32` — Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан.. Пример: `89012` + - `url: string` — Прямая ссылка на файл записи. Присутствует для события recording_ready.. Пример: `"https://api.pachca.com/files/89012"` + - `size: integer, int32` — Размер файла записи в байтах. Присутствует для события recording_ready.. Пример: `10485760` + - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400` - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` - `meta: object` (required) — Метаданные пагинации - `paginate: object` (required) — Вспомогательная информация diff --git a/apps/docs/public/api/bots/list.md b/apps/docs/public/api/bots/list.md new file mode 100644 index 00000000..7077ffa0 --- /dev/null +++ b/apps/docs/public/api/bots/list.md @@ -0,0 +1,174 @@ +> Расположение: Методы API → Боты и Webhook +> Краткое содержание: Метод для получения списка ботов +> Это Markdown-версия конкретной страницы. Для контекста за её пределами (правила API, полный перечень методов, авторизация) ОБЯЗАТЕЛЬНО открой [llms.txt](https://dev.pachca.com/llms.txt) перед ответом — это сэкономит токены и предотвратит неполный ответ. + +# Список ботов + +**Метод**: `GET` + +**Путь**: `/bots` + +> **Скоуп:** `bots:read` + +Метод для получения списка ботов. Возвращаются только боты, доступные вам для редактирования: созданные вами и те, чьи настройки открывают вам доступ к редактированию. + +## Параметры + +### Query параметры + +- `query: string` — Поисковая фраза для фильтрации ботов по имени +- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос +- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`) + + +## Пример запроса + +```bash +# Для получения следующей страницы используйте cursor из meta.paginate.next_page +curl "https://api.pachca.com/api/shared/v1/bots?query=задач&limit=1" \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" +``` + +## Ответы + +### 200: The request has succeeded. + +**Схема ответа:** + +- `data: array of object` (required) + - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816` + - `webhook: object` (required) — Объект параметров вебхука + - `name: string` (required) — Имя бота. Пример: `"Бот задач"` + - `nickname: string` (required) — Никнейм бота. Пример: `"tasks_bot"` + - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `"https://www.website.com/tasks/new"` + - `events: array of string` (required) — События, на которые подписан бот. Пример: `["message_new"]` + - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука + Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews) + - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `["/task"]` + - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `["messages:create"]` + - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `"Заказ от {{ client }} на сумму {{ amount }} ₽"` + - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука + Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики + - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `"challenge"` + - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` + - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` + - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости +- `meta: object` (required) — Метаданные пагинации + - `paginate: object` (required) — Вспомогательная информация + - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `"eyJxZCO2MiwiZGlyIjomSNYjIn3"` + - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `"eyJxZCO2MiwiZGlyIjoiYXNjIn0"` + - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true` + - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false` + +**Пример ответа:** + +```json +{ + "data": [ + { + "id": 1738816, + "webhook": { + "name": "Бот задач", + "nickname": "tasks_bot", + "outgoing_url": "https://www.website.com/tasks/new", + "events": [ + "message_new" + ], + "trigger_on": "commands", + "commands": [ + "/task" + ], + "scopes": [ + "messages:create" + ], + "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", + "template_engine": "liquid", + "challenge_key": "challenge", + "link_preview_enabled": true, + "ignore_self_messages": false, + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" + } + } + ], + "meta": { + "paginate": { + "next_page": "eyJxZCO2MiwiZGlyIjomSNYjIn3", + "prev_page": "eyJxZCO2MiwiZGlyIjoiYXNjIn0", + "has_next": true, + "has_prev": false + } + } +} +``` + +### 401: Access is unauthorized. + +**Схема ответа при ошибке:** + +- `error: string` (required) — Код ошибки. Пример: `"invalid_token"` +- `error_description: string` (required) — Описание ошибки. Пример: `"Access token is missing"` + +**Пример ответа:** + +```json +{ + "error": "invalid_token", + "error_description": "Access token is missing" +} +``` + +### 402: Client error + +**Схема ответа при ошибке:** + +- `errors: array of object` (required) — Массив ошибок + - `key: string` (required) — Ключ поля с ошибкой. Пример: `"field.name"` + - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `"invalid_value"` + - `message: string` (required) — Сообщение об ошибке. Пример: `"Поле не может быть пустым"` + - `code: string` (required) — Код ошибки + Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде + - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null` + **Структура значений Record:** + - Тип значения: `any` + +**Пример ответа:** + +```json +{ + "errors": [ + { + "key": "field.name", + "value": "invalid_value", + "message": "Поле не может быть пустым", + "code": "blank", + "payload": null + } + ] +} +``` + +### 403: Access is forbidden. + +**Схема ответа при ошибке:** + +- `error: string` (required) — Код ошибки. Пример: `"invalid_token"` +- `error_description: string` (required) — Описание ошибки. Пример: `"Access token is missing"` + +**Пример ответа:** + +```json +{ + "error": "invalid_token", + "error_description": "Access token is missing" +} +``` + diff --git a/apps/docs/public/api/bots/recreate-token-self.md b/apps/docs/public/api/bots/recreate-token-self.md index 8184e097..c07ca88e 100644 --- a/apps/docs/public/api/bots/recreate-token-self.md +++ b/apps/docs/public/api/bots/recreate-token-self.md @@ -45,6 +45,10 @@ curl -X POST "https://api.pachca.com/api/shared/v1/bot/recreate_token" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `"bm90X2FfcmVhbF90b2tlbg"` **Пример ответа:** @@ -72,7 +76,12 @@ curl -X POST "https://api.pachca.com/api/shared/v1/bot/recreate_token" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" }, "access_token": "bm90X2FfcmVhbF90b2tlbg" } diff --git a/apps/docs/public/api/bots/recreate-token.md b/apps/docs/public/api/bots/recreate-token.md index c4055e9e..9a6ce8fa 100644 --- a/apps/docs/public/api/bots/recreate-token.md +++ b/apps/docs/public/api/bots/recreate-token.md @@ -12,7 +12,7 @@ Метод генерирует боту новый `access_token` и сразу инвалидирует прежний. Используйте его при компрометации токена или плановой ротации секрета в `CI`. -Доступен администратору, владельцу компании или создателю бота. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу. +Ротация доступна создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу. ## Параметры @@ -52,6 +52,10 @@ curl -X POST "https://api.pachca.com/api/shared/v1/bots/1738816/recreate_token" - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `"bm90X2FfcmVhbF90b2tlbg"` **Пример ответа:** @@ -79,7 +83,12 @@ curl -X POST "https://api.pachca.com/api/shared/v1/bots/1738816/recreate_token" "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" }, "access_token": "bm90X2FfcmVhbF90b2tlbg" } diff --git a/apps/docs/public/api/bots/update-webhook.md b/apps/docs/public/api/bots/update-webhook.md index 58dea56c..7f480880 100644 --- a/apps/docs/public/api/bots/update-webhook.md +++ b/apps/docs/public/api/bots/update-webhook.md @@ -70,6 +70,10 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bot/webhook" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости **Пример ответа:** @@ -96,7 +100,12 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bot/webhook" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" } } } diff --git a/apps/docs/public/api/bots/update.md b/apps/docs/public/api/bots/update.md index 1609d03a..ac3138eb 100644 --- a/apps/docs/public/api/bots/update.md +++ b/apps/docs/public/api/bots/update.md @@ -47,6 +47,9 @@ - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `who_can_add: string` — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости + - `can_edit: array of string` — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` ### Пример @@ -67,7 +70,10 @@ "messages:create" ], "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", - "challenge_key": "challenge" + "challenge_key": "challenge", + "can_edit": [ + "admin" + ] } } ``` @@ -94,7 +100,10 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bots/1738816" \ "messages:create" ], "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", - "challenge_key": "challenge" + "challenge_key": "challenge", + "can_edit": [ + "admin" + ] } }' ``` @@ -123,6 +132,10 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bots/1738816" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости **Пример ответа:** @@ -149,7 +162,12 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bots/1738816" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" } } } diff --git a/apps/docs/public/api/llms.txt b/apps/docs/public/api/llms.txt index 3fcc0de5..3246c399 100644 --- a/apps/docs/public/api/llms.txt +++ b/apps/docs/public/api/llms.txt @@ -105,9 +105,11 @@ ## Bots - [Ротация собственного токена бота](https://dev.pachca.com/api/bots/recreate-token-self.md): POST /bot/recreate_token - [Саморегистрация вебхука бота](https://dev.pachca.com/api/bots/update-webhook.md): PUT /bot/webhook +- [Список ботов](https://dev.pachca.com/api/bots/list.md): GET /bots - [Новый бот](https://dev.pachca.com/api/bots/create.md): POST /bots - [Информация о боте](https://dev.pachca.com/api/bots/get.md): GET /bots/{id} - [Редактирование бота](https://dev.pachca.com/api/bots/update.md): PUT /bots/{id} +- [Удаление бота](https://dev.pachca.com/api/bots/delete.md): DELETE /bots/{id} - [Ротация токена бота](https://dev.pachca.com/api/bots/recreate-token.md): POST /bots/{id}/recreate_token - [История событий](https://dev.pachca.com/api/bots/list-events.md): GET /webhooks/events - [Удаление события](https://dev.pachca.com/api/bots/remove-event.md): DELETE /webhooks/events/{id} diff --git a/apps/docs/public/api/models.md b/apps/docs/public/api/models.md index 0b24a463..04c93174 100644 --- a/apps/docs/public/api/models.md +++ b/apps/docs/public/api/models.md @@ -395,8 +395,10 @@ ## Параметры бота - [Новый бот](POST /bots) +- [Список ботов](GET /bots) - [Информация о боте](GET /bots/{id}) - [Редактирование бота](PUT /bots/{id}) +- [Удаление бота](DELETE /bots/{id}) - [Саморегистрация вебхука бота](PUT /bot/webhook) - [Ротация токена бота](POST /bots/{id}/recreate_token) - [Ротация собственного токена бота](POST /bot/recreate_token) @@ -420,6 +422,10 @@ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости ## Событие исходящего вебхука @@ -521,6 +527,31 @@ - `user_id: integer, int32` (required) — Идентификатор отправителя сообщения. Пример: `2345` - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2024-09-18T19:53:14.000Z"` - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1726685594` + - **VideoCallWebhookPayload**: Структура исходящего вебхука о видеозвонке + - `type: string` (required) — Тип объекта. Пример: `"video_call"` + Значения: `video_call` — Для видеозвонков всегда video_call + - `event: string` (required) — Тип события + Значения: `started` — Видеозвонок начался, `finished` — Видеозвонок завершился, `recording_ready` — Запись видеозвонка готова + - `video_room_id: integer, int32` (required) — Идентификатор видеозвонка. Пример: `9012` + - `chat_id: integer, int32` (required) — Идентификатор чата, в котором проходит видеозвонок. Пример: `23438` + - `owner_id: integer, int32` (required) — Идентификатор пользователя, начавшего видеозвонок. Пример: `2345` + - `thread: object` — Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде. + - `id: integer, int32` (required) — Идентификатор треда. Пример: `12345` + - `chat_id: integer, int32` (required) — Идентификатор чата треда. Пример: `67890` + - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому создан тред. Пример: `268092` + - `message_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому создан тред. Пример: `23438` + - `started_at: date-time` — Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished.. Пример: `"2025-05-15T14:30:00.000Z"` + - `finished_at: date-time` — Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished.. Пример: `"2025-05-15T14:45:00.000Z"` + - `duration: integer, int32` — Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи.. Пример: `900` + - `members: array of object` — Список участников звонка. Присутствует для события finished. + - `user_id: integer, int32` (required) — Идентификатор участника. Пример: `2345` + - `joined_at: date-time` (required) — Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` + - `left_at: date-time` (required) — Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка.. Пример: `"2025-05-15T14:45:00.000Z"` + - `recording_id: integer, int32` — Идентификатор записи. Присутствует для события recording_ready.. Пример: `4567` + - `file_id: integer, int32` — Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан.. Пример: `89012` + - `url: string` — Прямая ссылка на файл записи. Присутствует для события recording_ready.. Пример: `"https://api.pachca.com/files/89012"` + - `size: integer, int32` — Размер файла записи в байтах. Присутствует для события recording_ready.. Пример: `10485760` + - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400` - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` @@ -533,7 +564,7 @@ - `id: string` (required) — Уникальный идентификатор события. Пример: `"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14"` - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` - `event_key: string` (required) — Ключ типа события - Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация) + Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация), `bot_deleted` — Бот удалён - `entity_id: string` (required) — Идентификатор затронутой сущности. Пример: `"98765"` - `entity_type: string` (required) — Тип затронутой сущности. Пример: `"User"` - `actor_id: string` (required) — Идентификатор пользователя, выполнившего действие. Пример: `"98765"` @@ -541,7 +572,7 @@ - `details: anyOf` (required) — Дополнительные детали события. Структура зависит от значения event_key — см. описания значений поля event_key. Для событий без деталей возвращается пустой объект **Возможные варианты:** - - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated + - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated, bot_deleted - **AuditDetailsUserUpdated**: При: user_updated - `changed_attrs: array of string` (required) — Список изменённых полей - **AuditDetailsRoleChanged**: При: user_role_changed diff --git a/apps/docs/public/api/search/list-users.md b/apps/docs/public/api/search/list-users.md index a6bdab80..847c521a 100644 --- a/apps/docs/public/api/search/list-users.md +++ b/apps/docs/public/api/search/list-users.md @@ -20,7 +20,7 @@ - `limit: integer, int32` (default: 200) — Количество возвращаемых результатов за один запрос - `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`) - `sort: string` — Сортировка результатов - Значения: `by_score`, `alphabetical` + Значения: `by_score`, `alphabetical`, `creation` - `order: string` — Направление сортировки Значения: `asc`, `desc` - `created_from: date-time` — Фильтр по дате создания (от) diff --git a/apps/docs/public/api/security/list.md b/apps/docs/public/api/security/list.md index 77ff93c8..7cec91cf 100644 --- a/apps/docs/public/api/security/list.md +++ b/apps/docs/public/api/security/list.md @@ -21,7 +21,7 @@ - `start_time: date-time` — Начальная метка времени (включительно) - `end_time: date-time` — Конечная метка времени (исключительно) - `event_key: string` — Фильтр по конкретному типу события - Значения: `user_login`, `user_logout`, `user_2fa_fail`, `user_2fa_success`, `user_created`, `user_deleted`, `user_role_changed`, `user_updated`, `tag_created`, `tag_deleted`, `user_added_to_tag`, `user_removed_from_tag`, `chat_created`, `chat_renamed`, `chat_permission_changed`, `user_chat_join`, `user_chat_leave`, `tag_added_to_chat`, `tag_removed_from_chat`, `message_updated`, `message_deleted`, `message_created`, `reaction_created`, `reaction_deleted`, `thread_created`, `access_token_created`, `access_token_updated`, `access_token_destroy`, `kms_encrypt`, `kms_decrypt`, `audit_events_accessed`, `dlp_violation_detected`, `search_users_api`, `search_chats_api`, `search_messages_api`, `bot_scopes_updated`, `bot_webhook_settings_updated`, `bot_token_recreated` + Значения: `user_login`, `user_logout`, `user_2fa_fail`, `user_2fa_success`, `user_created`, `user_deleted`, `user_role_changed`, `user_updated`, `tag_created`, `tag_deleted`, `user_added_to_tag`, `user_removed_from_tag`, `chat_created`, `chat_renamed`, `chat_permission_changed`, `user_chat_join`, `user_chat_leave`, `tag_added_to_chat`, `tag_removed_from_chat`, `message_updated`, `message_deleted`, `message_created`, `reaction_created`, `reaction_deleted`, `thread_created`, `access_token_created`, `access_token_updated`, `access_token_destroy`, `kms_encrypt`, `kms_decrypt`, `audit_events_accessed`, `dlp_violation_detected`, `search_users_api`, `search_chats_api`, `search_messages_api`, `bot_scopes_updated`, `bot_webhook_settings_updated`, `bot_token_recreated`, `bot_deleted` - `actor_id: string` — Идентификатор пользователя, выполнившего действие - `actor_type: string` — Тип актора - `entity_id: string` — Идентификатор затронутой сущности @@ -48,7 +48,7 @@ curl "https://api.pachca.com/api/shared/v1/audit_events?start_time=2025-05-01T09 - `id: string` (required) — Уникальный идентификатор события. Пример: `"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14"` - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` - `event_key: string` (required) — Ключ типа события - Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация) + Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация), `bot_deleted` — Бот удалён - `entity_id: string` (required) — Идентификатор затронутой сущности. Пример: `"98765"` - `entity_type: string` (required) — Тип затронутой сущности. Пример: `"User"` - `actor_id: string` (required) — Идентификатор пользователя, выполнившего действие. Пример: `"98765"` @@ -56,7 +56,7 @@ curl "https://api.pachca.com/api/shared/v1/audit_events?start_time=2025-05-01T09 - `details: anyOf` (required) — Дополнительные детали события. Структура зависит от значения event_key — см. описания значений поля event_key. Для событий без деталей возвращается пустой объект **Возможные варианты:** - - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated + - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated, bot_deleted - **AuditDetailsUserUpdated**: При: user_updated - `changed_attrs: array of string` (required) — Список изменённых полей - **AuditDetailsRoleChanged**: При: user_role_changed diff --git a/apps/docs/public/guides/bots/setup.md b/apps/docs/public/guides/bots/setup.md index 2b367a26..cba051aa 100644 --- a/apps/docs/public/guides/bots/setup.md +++ b/apps/docs/public/guides/bots/setup.md @@ -58,6 +58,8 @@ Передайте параметры бота в объекте `bot.webhook`: имя, никнейм, Webhook URL, список событий и команды. Никнейм должен заканчиваться на `_bot`. +Тип бота — в один или несколько чатов — задаётся полем `single_chat` и только при создании: изменить его потом нельзя, как и тип бота в интерфейсе. Ограничение «в один чат» распространяется только на беседы и каналы, треды и личные сообщения не в счёт. + ### Шаг 2. Сохраните access_token @@ -98,6 +100,13 @@ - **Все участники (кроме гостей)** - **Публичный бот** +### Настройка через API + +Эти доступы можно задать не только в интерфейсе, но и через API — методом [Редактирование бота](PUT /bots/{id}) или сразу при создании: + +- **Кто может редактировать настройки бота** — поле `can_edit` (роли `admin` и `chat_owners`). Создатель имеет доступ всегда, поэтому в поле перечисляются только дополнительные роли, а пустой массив означает «только создатель» +- **Кто может добавлять бота в чаты** — поле `who_can_add` (`creator`, `creator_admin`, `creator_admin_user`, `anyone`) + ## Настройка вебхуков и API ![Вкладки настройки вебхуков и API бота](/images/bots/bot_webhook_api_settings.webp) diff --git a/apps/docs/public/guides/cli/commands.md b/apps/docs/public/guides/cli/commands.md index d8d80646..4ee7d699 100644 --- a/apps/docs/public/guides/cli/commands.md +++ b/apps/docs/public/guides/cli/commands.md @@ -30,7 +30,9 @@ dev.pachca.com/api/members/add → pachca members add | `pachca auth status` | Статус текущего профиля | | `pachca auth switch` | Переключение активного профиля | | `pachca bots create` | `POST` Новый бот | +| `pachca bots delete` | `DELETE` Удаление бота | | `pachca bots get` | `GET` Информация о боте | +| `pachca bots list` | `GET` Список ботов | | `pachca bots list-events` | `GET` История событий | | `pachca bots recreate-token` | `POST` Ротация токена бота | | `pachca bots recreate-token-self` | `POST` Ротация собственного токена бота | diff --git a/apps/docs/public/guides/cli/installation.md b/apps/docs/public/guides/cli/installation.md index 3611fdab..61ae2f15 100644 --- a/apps/docs/public/guides/cli/installation.md +++ b/apps/docs/public/guides/cli/installation.md @@ -64,7 +64,7 @@ pachca doctor # ✔ Конфиг ~/.config/pachca/config.toml (права: 600) # ✔ Профиль personal (user: Иван Иванов) # ✔ Токен действителен (11 скоупов) -# ✔ CLI v2026.6.3 (актуальная версия) +# ✔ CLI v2026.7.0 (актуальная версия) ``` ## Обновление diff --git a/apps/docs/public/guides/n8n/resources.md b/apps/docs/public/guides/n8n/resources.md index 55f8c494..117580b6 100644 --- a/apps/docs/public/guides/n8n/resources.md +++ b/apps/docs/public/guides/n8n/resources.md @@ -33,7 +33,7 @@ | 8 | [Profile](#profile) | 6 | Мой профиль: информация, аватар, статус | | | 9 | [OAuth](#oauth) | 1 | Информация о токене | да | | 10 | [Task](#task) | 5 | Задачи: полный CRUD | | -| 11 | [Bot](#bot) | 8 | Боты: создание, получение, редактирование, вебхук, ротация токена, события | | +| 11 | [Bot](#bot) | 10 | Боты: создание, получение, список, редактирование, удаление, вебхук, ротация токена, события | | | 12 | [File](#file) | 1 | Загрузка файлов через S3 | | | 13 | [Form](#form) | 1 | Модальные формы | | | 14 | [Custom Property](#custom-property) | 1 | Дополнительные поля | да | @@ -215,13 +215,15 @@ ## Bot -Боты: создание, получение, редактирование, саморегистрация вебхука, ротация токена, история и удаление событий. +Боты: создание, получение, список, редактирование, удаление, саморегистрация вебхука, ротация токена, история и удаление событий. | Операция | API | |----------|-----| | Create | [Новый бот](POST /bots) | | Get | [Информация о боте](GET /bots/{id}) | +| Get Many | [Список ботов](GET /bots) | | Update | [Редактирование бота](PUT /bots/{id}) | +| Delete | [Удаление бота](DELETE /bots/{id}) | | Update Webhook | [Саморегистрация вебхука бота](PUT /bot/webhook) | | Recreate Token | [Ротация токена бота](POST /bots/{id}/recreate_token) | | Recreate Token Self | [Ротация собственного токена бота](POST /bot/recreate_token) | diff --git a/apps/docs/public/guides/sdk/csharp.md b/apps/docs/public/guides/sdk/csharp.md index 20bd2366..88d3d671 100644 --- a/apps/docs/public/guides/sdk/csharp.md +++ b/apps/docs/public/guides/sdk/csharp.md @@ -130,10 +130,12 @@ using var client = new PachcaClient("YOUR_TOKEN", "https://custom-api.example.co | `client.Bots.CreateBotAsync()` | [Новый бот](/api/bots/create) | | `client.Bots.SelfRecreateBotTokenAsync()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.Bots.RecreateBotTokenAsync()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.Bots.ListBotsAsync()` | [Список ботов](/api/bots/list) | | `client.Bots.GetBotAsync()` | [Информация о боте](/api/bots/get) | | `client.Bots.GetWebhookEventsAsync()` | [История событий](/api/bots/list-events) | | `client.Bots.SelfUpdateBotWebhookAsync()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.Bots.UpdateBotAsync()` | [Редактирование бота](/api/bots/update) | +| `client.Bots.DeleteBotAsync()` | [Удаление бота](/api/bots/delete) | | `client.Bots.DeleteWebhookEventAsync()` | [Удаление события](/api/bots/remove-event) | | `client.Security.GetAuditEventsAsync()` | [Журнал аудита событий](/api/security/list) | | `client.CustomProperties.ListPropertiesAsync()` | [Список дополнительных полей](/api/custom-properties/list) | diff --git a/apps/docs/public/guides/sdk/go.md b/apps/docs/public/guides/sdk/go.md index 700933a9..3eae54f9 100644 --- a/apps/docs/public/guides/sdk/go.md +++ b/apps/docs/public/guides/sdk/go.md @@ -137,10 +137,12 @@ user, err := client.Profile.GetProfile(ctx) | `client.Bots.CreateBot()` | [Новый бот](/api/bots/create) | | `client.Bots.SelfRecreateBotToken()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.Bots.RecreateBotToken()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.Bots.ListBots()` | [Список ботов](/api/bots/list) | | `client.Bots.GetBot()` | [Информация о боте](/api/bots/get) | | `client.Bots.GetWebhookEvents()` | [История событий](/api/bots/list-events) | | `client.Bots.SelfUpdateBotWebhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.Bots.UpdateBot()` | [Редактирование бота](/api/bots/update) | +| `client.Bots.DeleteBot()` | [Удаление бота](/api/bots/delete) | | `client.Bots.DeleteWebhookEvent()` | [Удаление события](/api/bots/remove-event) | | `client.Security.GetAuditEvents()` | [Журнал аудита событий](/api/security/list) | | `client.CustomProperties.ListProperties()` | [Список дополнительных полей](/api/custom-properties/list) | diff --git a/apps/docs/public/guides/sdk/kotlin.md b/apps/docs/public/guides/sdk/kotlin.md index aef03533..d5779291 100644 --- a/apps/docs/public/guides/sdk/kotlin.md +++ b/apps/docs/public/guides/sdk/kotlin.md @@ -145,10 +145,12 @@ client.close() | `client.bots.createBot()` | [Новый бот](/api/bots/create) | | `client.bots.selfRecreateBotToken()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.bots.recreateBotToken()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.bots.listBots()` | [Список ботов](/api/bots/list) | | `client.bots.getBot()` | [Информация о боте](/api/bots/get) | | `client.bots.getWebhookEvents()` | [История событий](/api/bots/list-events) | | `client.bots.selfUpdateBotWebhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.bots.updateBot()` | [Редактирование бота](/api/bots/update) | +| `client.bots.deleteBot()` | [Удаление бота](/api/bots/delete) | | `client.bots.deleteWebhookEvent()` | [Удаление события](/api/bots/remove-event) | | `client.security.getAuditEvents()` | [Журнал аудита событий](/api/security/list) | | `client.customProperties.listProperties()` | [Список дополнительных полей](/api/custom-properties/list) | diff --git a/apps/docs/public/guides/sdk/python.md b/apps/docs/public/guides/sdk/python.md index ba91f302..08dccb98 100644 --- a/apps/docs/public/guides/sdk/python.md +++ b/apps/docs/public/guides/sdk/python.md @@ -135,10 +135,12 @@ await client.close() | `client.bots.create_bot()` | [Новый бот](/api/bots/create) | | `client.bots.self_recreate_bot_token()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.bots.recreate_bot_token()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.bots.list_bots()` | [Список ботов](/api/bots/list) | | `client.bots.get_bot()` | [Информация о боте](/api/bots/get) | | `client.bots.get_webhook_events()` | [История событий](/api/bots/list-events) | | `client.bots.self_update_bot_webhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.bots.update_bot()` | [Редактирование бота](/api/bots/update) | +| `client.bots.delete_bot()` | [Удаление бота](/api/bots/delete) | | `client.bots.delete_webhook_event()` | [Удаление события](/api/bots/remove-event) | | `client.security.get_audit_events()` | [Журнал аудита событий](/api/security/list) | | `client.custom_properties.list_properties()` | [Список дополнительных полей](/api/custom-properties/list) | diff --git a/apps/docs/public/guides/sdk/swift.md b/apps/docs/public/guides/sdk/swift.md index c4b2623e..b0407e36 100644 --- a/apps/docs/public/guides/sdk/swift.md +++ b/apps/docs/public/guides/sdk/swift.md @@ -136,10 +136,12 @@ let client = PachcaClient(token: "YOUR_TOKEN", baseURL: "https://custom-api.exam | `client.bots.createBot()` | [Новый бот](/api/bots/create) | | `client.bots.selfRecreateBotToken()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.bots.recreateBotToken()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.bots.listBots()` | [Список ботов](/api/bots/list) | | `client.bots.getBot()` | [Информация о боте](/api/bots/get) | | `client.bots.getWebhookEvents()` | [История событий](/api/bots/list-events) | | `client.bots.selfUpdateBotWebhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.bots.updateBot()` | [Редактирование бота](/api/bots/update) | +| `client.bots.deleteBot()` | [Удаление бота](/api/bots/delete) | | `client.bots.deleteWebhookEvent()` | [Удаление события](/api/bots/remove-event) | | `client.security.getAuditEvents()` | [Журнал аудита событий](/api/security/list) | | `client.customProperties.listProperties()` | [Список дополнительных полей](/api/custom-properties/list) | diff --git a/apps/docs/public/guides/sdk/typescript.md b/apps/docs/public/guides/sdk/typescript.md index a3362905..bfc0c9c6 100644 --- a/apps/docs/public/guides/sdk/typescript.md +++ b/apps/docs/public/guides/sdk/typescript.md @@ -128,10 +128,12 @@ const client = new PachcaClient("YOUR_TOKEN", "https://custom-api.example.com/ap | `client.bots.createBot()` | [Новый бот](/api/bots/create) | | `client.bots.selfRecreateBotToken()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.bots.recreateBotToken()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.bots.listBots()` | [Список ботов](/api/bots/list) | | `client.bots.getBot()` | [Информация о боте](/api/bots/get) | | `client.bots.getWebhookEvents()` | [История событий](/api/bots/list-events) | | `client.bots.selfUpdateBotWebhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.bots.updateBot()` | [Редактирование бота](/api/bots/update) | +| `client.bots.deleteBot()` | [Удаление бота](/api/bots/delete) | | `client.bots.deleteWebhookEvent()` | [Удаление события](/api/bots/remove-event) | | `client.security.getAuditEvents()` | [Журнал аудита событий](/api/security/list) | | `client.customProperties.listProperties()` | [Список дополнительных полей](/api/custom-properties/list) | diff --git a/apps/docs/public/guides/webhook/events.md b/apps/docs/public/guides/webhook/events.md index 23aaa8e7..a94ef5ff 100644 --- a/apps/docs/public/guides/webhook/events.md +++ b/apps/docs/public/guides/webhook/events.md @@ -197,6 +197,41 @@ > Payload содержит обнаруженные ссылки. Полное сообщение получите методом [Информация о сообщении](GET /messages/{id}) по `message_id`. +## Видеозвонки + +Вебхук отправляется для видеозвонков в чатах, где состоит бот, и в тредах этих чатов. Поле `event` в payload различает три события: `started` (звонок начался), `finished` (звонок завершился) и `recording_ready` (запись готова). Набор полей payload зависит от события. + +#### VideoCallWebhookPayload + +- `type: string` (required) — Тип объекта. Пример: `"video_call"` + Значения: `video_call` — Для видеозвонков всегда video_call +- `event: string` (required) — Тип события + Значения: `started` — Видеозвонок начался, `finished` — Видеозвонок завершился, `recording_ready` — Запись видеозвонка готова +- `video_room_id: integer, int32` (required) — Идентификатор видеозвонка. Пример: `9012` +- `chat_id: integer, int32` (required) — Идентификатор чата, в котором проходит видеозвонок. Пример: `23438` +- `owner_id: integer, int32` (required) — Идентификатор пользователя, начавшего видеозвонок. Пример: `2345` +- `thread: object` — Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде. + - `id: integer, int32` (required) — Идентификатор треда. Пример: `12345` + - `chat_id: integer, int32` (required) — Идентификатор чата треда. Пример: `67890` + - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому создан тред. Пример: `268092` + - `message_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому создан тред. Пример: `23438` +- `started_at: date-time` — Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished.. Пример: `"2025-05-15T14:30:00.000Z"` +- `finished_at: date-time` — Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished.. Пример: `"2025-05-15T14:45:00.000Z"` +- `duration: integer, int32` — Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи.. Пример: `900` +- `members: array of object` — Список участников звонка. Присутствует для события finished. + - `user_id: integer, int32` (required) — Идентификатор участника. Пример: `2345` + - `joined_at: date-time` (required) — Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` + - `left_at: date-time` (required) — Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка.. Пример: `"2025-05-15T14:45:00.000Z"` +- `recording_id: integer, int32` — Идентификатор записи. Присутствует для события recording_ready.. Пример: `4567` +- `file_id: integer, int32` — Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан.. Пример: `89012` +- `url: string` — Прямая ссылка на файл записи. Присутствует для события recording_ready.. Пример: `"https://api.pachca.com/files/89012"` +- `size: integer, int32` — Размер файла записи в байтах. Присутствует для события recording_ready.. Пример: `10485760` +- `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400` + + +> Для события `finished` payload содержит список участников с временем подключения и выхода, для `recording_ready` — ссылку на файл записи, её размер и длительность. Полные данные участников получите методом [Информация о сотруднике](GET /users/{id}) по каждому `user_id`, а чат — методом [Информация о чате](GET /chats/{id}) по `chat_id`. + + ## Связанные разделы diff --git a/apps/docs/public/guides/workflows.md b/apps/docs/public/guides/workflows.md index 5c35b80c..958cc27f 100644 --- a/apps/docs/public/guides/workflows.md +++ b/apps/docs/public/guides/workflows.md @@ -328,6 +328,13 @@ > Новый токен возвращается один раз. Self-путь (`POST /bot/recreate_token`) инвалидирует именно тот токен, которым выполнен запрос, — захвати новый токен из ответа в той же операции. +**Найти и удалить бота** + +1. Пользовательским токеном (скоуп `bots:read`) получи список ботов, доступных тебе для редактирования: созданных тобой и тех, чьи настройки открывают тебе доступ. Фильтруй по имени параметром `query`, следующую страницу бери из `meta.paginate.next_page` +2. Возьми `id` нужного бота из списка и удали его (скоуп `bots:write`). Доступно администратору, владельцу компании или создателю бота — владельцы чатов удалять бота не могут. Прежний токен инвалидируется сразу, бот исключается из всех чатов, его исходящий вебхук удаляется + +> Удаление необратимо: токен бота инвалидируется сразу, бот исключается из чатов. Событие фиксируется в журнале аудита как `bot_deleted`. + **Обработать входящий вебхук-событие** 1. Получи POST-запрос на свой Webhook URL diff --git a/apps/docs/public/llms-en.txt b/apps/docs/public/llms-en.txt index d963ee72..0b48236f 100644 --- a/apps/docs/public/llms-en.txt +++ b/apps/docs/public/llms-en.txt @@ -1091,9 +1091,13 @@ Allows a bot to generate a new `access_token` for itself using its own token — Allows a bot to change its own outgoing webhook `URL` using its own token — without an administrator and without knowing its own `id`. The webhook of the bot that owns the token is changed. To disable the webhook, send an empty string in `outgoing_url`. Body: { webhook: { outgoing_url* } } +### GET /api/shared/v1/bots +Retrieve a list of bots. The response includes only the bots you can edit: those you created and those whose settings grant you edit access. +Parameters: query?, limit?, cursor? + ### POST /api/shared/v1/bots Creates a bot and returns its `access_token`. When the bot is created, you receive its `access_token` — save it right away. You can obtain the token again only through the interface (the "API" tab of the bot settings). -Body: { webhook: { name*, nickname, outgoing_url, events, trigger_on, commands, scopes, template, template_engine, challenge_key, link_preview_enabled, ignore_self_messages, events_history_enabled } } +Body: { webhook: { name*, nickname, outgoing_url, events, trigger_on, commands, scopes, template, template_engine, challenge_key, link_preview_enabled, ignore_self_messages, events_history_enabled, who_can_add, can_edit, single_chat } } ### GET /api/shared/v1/bots/{id} Retrieves bot parameters by its `id`. @@ -1102,10 +1106,14 @@ Parameters: id ### PUT /api/shared/v1/bots/{id} Edit a bot's settings. To edit a bot you need to know its `id` and specify it in the request `URL`. All editable bot parameters are specified in the request body. You cannot edit a bot whose settings are not accessible to you (the "Who can edit bot settings" field is located on the "General" tab in the bot settings). Parameters: id -Body: { webhook: { name, nickname, outgoing_url, events, trigger_on, commands, scopes, template, template_engine, challenge_key, link_preview_enabled, ignore_self_messages, events_history_enabled } } +Body: { webhook: { name, nickname, outgoing_url, events, trigger_on, commands, scopes, template, template_engine, challenge_key, link_preview_enabled, ignore_self_messages, events_history_enabled, who_can_add, can_edit } } + +### DELETE /api/shared/v1/bots/{id} +Delete a bot. The bot's previous `access_token` is invalidated immediately, the bot is removed from all chats, and its outgoing webhook is deleted. Deletion is available to the bot creator, and to a company administrator if the bot's settings grant administrators edit access. Chat owners and admins cannot delete a bot, even if they are allowed to edit it. To delete a bot you need to know its `id` and specify it in the request `URL`. +Parameters: id ### POST /api/shared/v1/bots/{id}/recreate_token -Generates a new `access_token` for the bot and immediately invalidates the previous one. Use it when a token is compromised or for scheduled secret rotation in `CI`. Available to a company administrator, the company owner, or the bot creator. Specify the bot's `id` in the request `URL`. The new token is returned in the response only once — save it right away. +Generates a new `access_token` for the bot and immediately invalidates the previous one. Use it when a token is compromised or for scheduled secret rotation in `CI`. Rotation is available to the bot creator, and to a company administrator if the bot's settings grant administrators edit access. Specify the bot's `id` in the request `URL`. The new token is returned in the response only once — save it right away. Parameters: id ### GET /api/shared/v1/webhooks/events diff --git a/apps/docs/public/llms-full.txt b/apps/docs/public/llms-full.txt index f5bd468f..1ee4f2d2 100644 --- a/apps/docs/public/llms-full.txt +++ b/apps/docs/public/llms-full.txt @@ -16,7 +16,7 @@ |--------|--------| | LIBRARY RULES — правила: auth, пагинация, лимиты, ошибки, SDK | 98–200 | | How-to Guides — рецепты задач с кодом TS/Python | 201–884 | -| Руководства — гайды: SDK, вебхуки, боты, формы, n8n, CLI | 885–11536 | +| Руководства — гайды: SDK, вебхуки, боты, формы, n8n, CLI | 885–11634 | | · Обзор | 890–992 | | · Быстрый старт | 993–1082 | | · AI агенты | 1083–1220 | @@ -24,76 +24,76 @@ | · Markdown и документы | 1290–1346 | | · Треды | 1347–1474 | | · Боты | 1475–1537 | -| · Создание и настройка | 1538–1664 | -| · Доступы к чатам и сообщениям | 1665–1737 | -| · Готовые примеры реализации | 1738–1772 | -| · Входящие вебхуки | 1773–1924 | -| · Исходящие вебхуки | 1925–1979 | -| · Настройка и типы событий | 1980–2185 | -| · Безопасность и обработчик | 2186–2376 | -| · Поллинг | 2377–2560 | -| · Кнопки в сообщениях | 2561–2716 | -| · Формы | 2717–2786 | -| · Блоки представления | 2787–3000 | -| · Обработка форм | 3001–3140 | -| · Разворачивание ссылок | 3141–3253 | -| · Экспорт сообщений | 3254–3395 | -| · DLP-система | 3396–3603 | -| · Пачка Audit Events API | 3604–3678 | -| · Форматирование текста | 3679–3759 | -| · Сценарии | 3760–4265 | -| · CLI | 4266–4359 | -| · Установка | 4360–4452 | -| · Авторизация | 4453–4526 | -| · Вывод | 4527–4630 | -| · Флаги и скрипты | 4631–4857 | -| · Сценарии | 4858–4905 | -| · Файлы | 4906–4940 | -| · Прямые запросы | 4941–5051 | -| · Команды | 5052–5191 | -| · SDK и генератор | 5192–5277 | -| · TypeScript | 5278–5697 | -| · Python | 5698–6111 | -| · Go | 6112–6550 | -| · Kotlin | 6551–6981 | -| · Swift | 6982–7381 | -| · C# | 7382–7842 | -| · n8n | 7843–7918 | -| · Начало работы | 7919–8146 | -| · Ресурсы и операции | 8147–8508 | -| · Триггер | 8509–8760 | -| · Тестирование | 8761–9034 | -| · Примеры workflow | 9035–9250 | -| · Продвинутые функции | 9251–9487 | -| · Устранение ошибок | 9488–9667 | -| · Миграция с v1 | 9668–9788 | -| · Последние обновления | 9789–9798 | -| · Обзор | 9799–9898 | -| · Авторизация | 9899–10102 | -| · Запросы и ответы | 10103–10293 | -| · Пагинация | 10294–10530 | -| · Загрузка файлов | 10531–10748 | -| · Ошибки | 10749–10822 | -| · Лимиты | 10823–10940 | -| · Модели | 10941–11536 | -| API-методы — все эндпоинты со схемами и примерами | 11537–28260 | -| · OAuth | 11539–11638 | -| · Chats | 11639–13246 | -| · Profile | 13247–14150 | -| · Users | 14151–16530 | -| · Group tags | 16531–17878 | -| · Members | 17879–19223 | -| · Threads | 19224–19781 | -| · Messages | 19782–21916 | -| · Read members | 21917–22163 | -| · Reactions | 22164–22810 | -| · Search | 22811–23623 | -| · Tasks | 23624–24913 | -| · Views | 24914–25476 | -| · Bots | 25477–27488 | -| · Security | 27489–27807 | -| · Custom Properties | 27808–28017 | -| · Files | 28018–28260 | +| · Создание и настройка | 1538–1673 | +| · Доступы к чатам и сообщениям | 1674–1746 | +| · Готовые примеры реализации | 1747–1781 | +| · Входящие вебхуки | 1782–1933 | +| · Исходящие вебхуки | 1934–1988 | +| · Настройка и типы событий | 1989–2229 | +| · Безопасность и обработчик | 2230–2420 | +| · Поллинг | 2421–2604 | +| · Кнопки в сообщениях | 2605–2760 | +| · Формы | 2761–2830 | +| · Блоки представления | 2831–3044 | +| · Обработка форм | 3045–3184 | +| · Разворачивание ссылок | 3185–3297 | +| · Экспорт сообщений | 3298–3439 | +| · DLP-система | 3440–3647 | +| · Пачка Audit Events API | 3648–3722 | +| · Форматирование текста | 3723–3803 | +| · Сценарии | 3804–4316 | +| · CLI | 4317–4410 | +| · Установка | 4411–4503 | +| · Авторизация | 4504–4577 | +| · Вывод | 4578–4681 | +| · Флаги и скрипты | 4682–4908 | +| · Сценарии | 4909–4956 | +| · Файлы | 4957–4991 | +| · Прямые запросы | 4992–5102 | +| · Команды | 5103–5244 | +| · SDK и генератор | 5245–5330 | +| · TypeScript | 5331–5752 | +| · Python | 5753–6168 | +| · Go | 6169–6609 | +| · Kotlin | 6610–7042 | +| · Swift | 7043–7444 | +| · C# | 7445–7907 | +| · n8n | 7908–7983 | +| · Начало работы | 7984–8211 | +| · Ресурсы и операции | 8212–8575 | +| · Триггер | 8576–8827 | +| · Тестирование | 8828–9101 | +| · Примеры workflow | 9102–9317 | +| · Продвинутые функции | 9318–9554 | +| · Устранение ошибок | 9555–9734 | +| · Миграция с v1 | 9735–9855 | +| · Последние обновления | 9856–9865 | +| · Обзор | 9866–9965 | +| · Авторизация | 9966–10169 | +| · Запросы и ответы | 10170–10360 | +| · Пагинация | 10361–10597 | +| · Загрузка файлов | 10598–10815 | +| · Ошибки | 10816–10889 | +| · Лимиты | 10890–11007 | +| · Модели | 11008–11634 | +| API-методы — все эндпоинты со схемами и примерами | 11635–28826 | +| · OAuth | 11637–11736 | +| · Chats | 11737–13344 | +| · Profile | 13345–14248 | +| · Users | 14249–16628 | +| · Group tags | 16629–17976 | +| · Members | 17977–19321 | +| · Threads | 19322–19879 | +| · Messages | 19880–22014 | +| · Read members | 22015–22261 | +| · Reactions | 22262–22908 | +| · Search | 22909–23721 | +| · Tasks | 23722–25011 | +| · Views | 25012–25574 | +| · Bots | 25575–28054 | +| · Security | 28055–28373 | +| · Custom Properties | 28374–28583 | +| · Files | 28584–28826 | # LIBRARY RULES @@ -1590,6 +1590,8 @@ pachca messages create \ Передайте параметры бота в объекте `bot.webhook`: имя, никнейм, Webhook URL, список событий и команды. Никнейм должен заканчиваться на `_bot`. +Тип бота — в один или несколько чатов — задаётся полем `single_chat` и только при создании: изменить его потом нельзя, как и тип бота в интерфейсе. Ограничение «в один чат» распространяется только на беседы и каналы, треды и личные сообщения не в счёт. + ### Шаг 2. Сохраните access_token @@ -1630,6 +1632,13 @@ pachca messages create \ - **Все участники (кроме гостей)** - **Публичный бот** +### Настройка через API + +Эти доступы можно задать не только в интерфейсе, но и через API — методом [Редактирование бота](PUT /bots/{id}) или сразу при создании: + +- **Кто может редактировать настройки бота** — поле `can_edit` (роли `admin` и `chat_owners`). Создатель имеет доступ всегда, поэтому в поле перечисляются только дополнительные роли, а пустой массив означает «только создатель» +- **Кто может добавлять бота в чаты** — поле `who_can_add` (`creator`, `creator_admin`, `creator_admin_user`, `anyone`) + ## Настройка вебхуков и API ![Вкладки настройки вебхуков и API бота](/images/bots/bot_webhook_api_settings.webp) @@ -2171,6 +2180,41 @@ Liquid также поддерживает: > Payload содержит обнаруженные ссылки. Полное сообщение получите методом [Информация о сообщении](GET /messages/{id}) по `message_id`. +## Видеозвонки + +Вебхук отправляется для видеозвонков в чатах, где состоит бот, и в тредах этих чатов. Поле `event` в payload различает три события: `started` (звонок начался), `finished` (звонок завершился) и `recording_ready` (запись готова). Набор полей payload зависит от события. + +#### VideoCallWebhookPayload + +- `type: string` (required) — Тип объекта. Пример: `"video_call"` + Значения: `video_call` — Для видеозвонков всегда video_call +- `event: string` (required) — Тип события + Значения: `started` — Видеозвонок начался, `finished` — Видеозвонок завершился, `recording_ready` — Запись видеозвонка готова +- `video_room_id: integer, int32` (required) — Идентификатор видеозвонка. Пример: `9012` +- `chat_id: integer, int32` (required) — Идентификатор чата, в котором проходит видеозвонок. Пример: `23438` +- `owner_id: integer, int32` (required) — Идентификатор пользователя, начавшего видеозвонок. Пример: `2345` +- `thread: object` — Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде. + - `id: integer, int32` (required) — Идентификатор треда. Пример: `12345` + - `chat_id: integer, int32` (required) — Идентификатор чата треда. Пример: `67890` + - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому создан тред. Пример: `268092` + - `message_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому создан тред. Пример: `23438` +- `started_at: date-time` — Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished.. Пример: `"2025-05-15T14:30:00.000Z"` +- `finished_at: date-time` — Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished.. Пример: `"2025-05-15T14:45:00.000Z"` +- `duration: integer, int32` — Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи.. Пример: `900` +- `members: array of object` — Список участников звонка. Присутствует для события finished. + - `user_id: integer, int32` (required) — Идентификатор участника. Пример: `2345` + - `joined_at: date-time` (required) — Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` + - `left_at: date-time` (required) — Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка.. Пример: `"2025-05-15T14:45:00.000Z"` +- `recording_id: integer, int32` — Идентификатор записи. Присутствует для события recording_ready.. Пример: `4567` +- `file_id: integer, int32` — Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан.. Пример: `89012` +- `url: string` — Прямая ссылка на файл записи. Присутствует для события recording_ready.. Пример: `"https://api.pachca.com/files/89012"` +- `size: integer, int32` — Размер файла записи в байтах. Присутствует для события recording_ready.. Пример: `10485760` +- `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400` + + +> Для события `finished` payload содержит список участников с временем подключения и выхода, для `recording_ready` — ссылку на файл записи, её размер и длительность. Полные данные участников получите методом [Информация о сотруднике](GET /users/{id}) по каждому `user_id`, а чат — методом [Информация о чате](GET /chats/{id}) по `chat_id`. + + ## Связанные разделы @@ -4083,6 +4127,13 @@ curl "https://api.pachca.com/api/shared/v1/audit_events?start_time=2025-05-01T00 > Новый токен возвращается один раз. Self-путь (`POST /bot/recreate_token`) инвалидирует именно тот токен, которым выполнен запрос, — захвати новый токен из ответа в той же операции. +**Найти и удалить бота** + +1. Пользовательским токеном (скоуп `bots:read`) получи список ботов, доступных тебе для редактирования: созданных тобой и тех, чьи настройки открывают тебе доступ. Фильтруй по имени параметром `query`, следующую страницу бери из `meta.paginate.next_page` +2. Возьми `id` нужного бота из списка и удали его (скоуп `bots:write`). Доступно администратору, владельцу компании или создателю бота — владельцы чатов удалять бота не могут. Прежний токен инвалидируется сразу, бот исключается из всех чатов, его исходящий вебхук удаляется + +> Удаление необратимо: токен бота инвалидируется сразу, бот исключается из чатов. Событие фиксируется в журнале аудита как `bot_deleted`. + **Обработать входящий вебхук-событие** 1. Получи POST-запрос на свой Webhook URL @@ -4418,7 +4469,7 @@ pachca doctor # ✔ Конфиг ~/.config/pachca/config.toml (права: 600) # ✔ Профиль personal (user: Иван Иванов) # ✔ Токен действителен (11 скоупов) -# ✔ CLI v2026.6.3 (актуальная версия) +# ✔ CLI v2026.7.0 (актуальная версия) ``` ## Обновление @@ -5076,7 +5127,9 @@ dev.pachca.com/api/members/add → pachca members add | `pachca auth status` | Статус текущего профиля | | `pachca auth switch` | Переключение активного профиля | | `pachca bots create` | `POST` Новый бот | +| `pachca bots delete` | `DELETE` Удаление бота | | `pachca bots get` | `GET` Информация о боте | +| `pachca bots list` | `GET` Список ботов | | `pachca bots list-events` | `GET` История событий | | `pachca bots recreate-token` | `POST` Ротация токена бота | | `pachca bots recreate-token-self` | `POST` Ротация собственного токена бота | @@ -5400,10 +5453,12 @@ const client = new PachcaClient("YOUR_TOKEN", "https://custom-api.example.com/ap | `client.bots.createBot()` | [Новый бот](/api/bots/create) | | `client.bots.selfRecreateBotToken()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.bots.recreateBotToken()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.bots.listBots()` | [Список ботов](/api/bots/list) | | `client.bots.getBot()` | [Информация о боте](/api/bots/get) | | `client.bots.getWebhookEvents()` | [История событий](/api/bots/list-events) | | `client.bots.selfUpdateBotWebhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.bots.updateBot()` | [Редактирование бота](/api/bots/update) | +| `client.bots.deleteBot()` | [Удаление бота](/api/bots/delete) | | `client.bots.deleteWebhookEvent()` | [Удаление события](/api/bots/remove-event) | | `client.security.getAuditEvents()` | [Журнал аудита событий](/api/security/list) | | `client.customProperties.listProperties()` | [Список дополнительных полей](/api/custom-properties/list) | @@ -5827,10 +5882,12 @@ await client.close() | `client.bots.create_bot()` | [Новый бот](/api/bots/create) | | `client.bots.self_recreate_bot_token()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.bots.recreate_bot_token()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.bots.list_bots()` | [Список ботов](/api/bots/list) | | `client.bots.get_bot()` | [Информация о боте](/api/bots/get) | | `client.bots.get_webhook_events()` | [История событий](/api/bots/list-events) | | `client.bots.self_update_bot_webhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.bots.update_bot()` | [Редактирование бота](/api/bots/update) | +| `client.bots.delete_bot()` | [Удаление бота](/api/bots/delete) | | `client.bots.delete_webhook_event()` | [Удаление события](/api/bots/remove-event) | | `client.security.get_audit_events()` | [Журнал аудита событий](/api/security/list) | | `client.custom_properties.list_properties()` | [Список дополнительных полей](/api/custom-properties/list) | @@ -6243,10 +6300,12 @@ user, err := client.Profile.GetProfile(ctx) | `client.Bots.CreateBot()` | [Новый бот](/api/bots/create) | | `client.Bots.SelfRecreateBotToken()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.Bots.RecreateBotToken()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.Bots.ListBots()` | [Список ботов](/api/bots/list) | | `client.Bots.GetBot()` | [Информация о боте](/api/bots/get) | | `client.Bots.GetWebhookEvents()` | [История событий](/api/bots/list-events) | | `client.Bots.SelfUpdateBotWebhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.Bots.UpdateBot()` | [Редактирование бота](/api/bots/update) | +| `client.Bots.DeleteBot()` | [Удаление бота](/api/bots/delete) | | `client.Bots.DeleteWebhookEvent()` | [Удаление события](/api/bots/remove-event) | | `client.Security.GetAuditEvents()` | [Журнал аудита событий](/api/security/list) | | `client.CustomProperties.ListProperties()` | [Список дополнительных полей](/api/custom-properties/list) | @@ -6690,10 +6749,12 @@ client.close() | `client.bots.createBot()` | [Новый бот](/api/bots/create) | | `client.bots.selfRecreateBotToken()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.bots.recreateBotToken()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.bots.listBots()` | [Список ботов](/api/bots/list) | | `client.bots.getBot()` | [Информация о боте](/api/bots/get) | | `client.bots.getWebhookEvents()` | [История событий](/api/bots/list-events) | | `client.bots.selfUpdateBotWebhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.bots.updateBot()` | [Редактирование бота](/api/bots/update) | +| `client.bots.deleteBot()` | [Удаление бота](/api/bots/delete) | | `client.bots.deleteWebhookEvent()` | [Удаление события](/api/bots/remove-event) | | `client.security.getAuditEvents()` | [Журнал аудита событий](/api/security/list) | | `client.customProperties.listProperties()` | [Список дополнительных полей](/api/custom-properties/list) | @@ -7112,10 +7173,12 @@ let client = PachcaClient(token: "YOUR_TOKEN", baseURL: "https://custom-api.exam | `client.bots.createBot()` | [Новый бот](/api/bots/create) | | `client.bots.selfRecreateBotToken()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.bots.recreateBotToken()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.bots.listBots()` | [Список ботов](/api/bots/list) | | `client.bots.getBot()` | [Информация о боте](/api/bots/get) | | `client.bots.getWebhookEvents()` | [История событий](/api/bots/list-events) | | `client.bots.selfUpdateBotWebhook()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.bots.updateBot()` | [Редактирование бота](/api/bots/update) | +| `client.bots.deleteBot()` | [Удаление бота](/api/bots/delete) | | `client.bots.deleteWebhookEvent()` | [Удаление события](/api/bots/remove-event) | | `client.security.getAuditEvents()` | [Журнал аудита событий](/api/security/list) | | `client.customProperties.listProperties()` | [Список дополнительных полей](/api/custom-properties/list) | @@ -7506,10 +7569,12 @@ using var client = new PachcaClient("YOUR_TOKEN", "https://custom-api.example.co | `client.Bots.CreateBotAsync()` | [Новый бот](/api/bots/create) | | `client.Bots.SelfRecreateBotTokenAsync()` | [Ротация собственного токена бота](/api/bots/recreate-token-self) | | `client.Bots.RecreateBotTokenAsync()` | [Ротация токена бота](/api/bots/recreate-token) | +| `client.Bots.ListBotsAsync()` | [Список ботов](/api/bots/list) | | `client.Bots.GetBotAsync()` | [Информация о боте](/api/bots/get) | | `client.Bots.GetWebhookEventsAsync()` | [История событий](/api/bots/list-events) | | `client.Bots.SelfUpdateBotWebhookAsync()` | [Саморегистрация вебхука бота](/api/bots/update-webhook) | | `client.Bots.UpdateBotAsync()` | [Редактирование бота](/api/bots/update) | +| `client.Bots.DeleteBotAsync()` | [Удаление бота](/api/bots/delete) | | `client.Bots.DeleteWebhookEventAsync()` | [Удаление события](/api/bots/remove-event) | | `client.Security.GetAuditEventsAsync()` | [Журнал аудита событий](/api/security/list) | | `client.CustomProperties.ListPropertiesAsync()` | [Список дополнительных полей](/api/custom-properties/list) | @@ -8174,7 +8239,7 @@ Workflow — визуальный редактор, в котором выстр | 8 | [Profile](#profile) | 6 | Мой профиль: информация, аватар, статус | | | 9 | [OAuth](#oauth) | 1 | Информация о токене | да | | 10 | [Task](#task) | 5 | Задачи: полный CRUD | | -| 11 | [Bot](#bot) | 8 | Боты: создание, получение, редактирование, вебхук, ротация токена, события | | +| 11 | [Bot](#bot) | 10 | Боты: создание, получение, список, редактирование, удаление, вебхук, ротация токена, события | | | 12 | [File](#file) | 1 | Загрузка файлов через S3 | | | 13 | [Form](#form) | 1 | Модальные формы | | | 14 | [Custom Property](#custom-property) | 1 | Дополнительные поля | да | @@ -8356,13 +8421,15 @@ Workflow — визуальный редактор, в котором выстр ## Bot -Боты: создание, получение, редактирование, саморегистрация вебхука, ротация токена, история и удаление событий. +Боты: создание, получение, список, редактирование, удаление, саморегистрация вебхука, ротация токена, история и удаление событий. | Операция | API | |----------|-----| | Create | [Новый бот](POST /bots) | | Get | [Информация о боте](GET /bots/{id}) | +| Get Many | [Список ботов](GET /bots) | | Update | [Редактирование бота](PUT /bots/{id}) | +| Delete | [Удаление бота](DELETE /bots/{id}) | | Update Webhook | [Саморегистрация вебхука бота](PUT /bot/webhook) | | Recreate Token | [Ротация токена бота](POST /bots/{id}/recreate_token) | | Recreate Token Self | [Ротация собственного токена бота](POST /bot/recreate_token) | @@ -11330,8 +11397,10 @@ users = await with_retry(lambda: client.users.list_users()) ## Параметры бота - [Новый бот](POST /bots) +- [Список ботов](GET /bots) - [Информация о боте](GET /bots/{id}) - [Редактирование бота](PUT /bots/{id}) +- [Удаление бота](DELETE /bots/{id}) - [Саморегистрация вебхука бота](PUT /bot/webhook) - [Ротация токена бота](POST /bots/{id}/recreate_token) - [Ротация собственного токена бота](POST /bot/recreate_token) @@ -11355,6 +11424,10 @@ users = await with_retry(lambda: client.users.list_users()) - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости ## Событие исходящего вебхука @@ -11456,6 +11529,31 @@ users = await with_retry(lambda: client.users.list_users()) - `user_id: integer, int32` (required) — Идентификатор отправителя сообщения. Пример: `2345` - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2024-09-18T19:53:14.000Z"` - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1726685594` + - **VideoCallWebhookPayload**: Структура исходящего вебхука о видеозвонке + - `type: string` (required) — Тип объекта. Пример: `"video_call"` + Значения: `video_call` — Для видеозвонков всегда video_call + - `event: string` (required) — Тип события + Значения: `started` — Видеозвонок начался, `finished` — Видеозвонок завершился, `recording_ready` — Запись видеозвонка готова + - `video_room_id: integer, int32` (required) — Идентификатор видеозвонка. Пример: `9012` + - `chat_id: integer, int32` (required) — Идентификатор чата, в котором проходит видеозвонок. Пример: `23438` + - `owner_id: integer, int32` (required) — Идентификатор пользователя, начавшего видеозвонок. Пример: `2345` + - `thread: object` — Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде. + - `id: integer, int32` (required) — Идентификатор треда. Пример: `12345` + - `chat_id: integer, int32` (required) — Идентификатор чата треда. Пример: `67890` + - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому создан тред. Пример: `268092` + - `message_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому создан тред. Пример: `23438` + - `started_at: date-time` — Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished.. Пример: `"2025-05-15T14:30:00.000Z"` + - `finished_at: date-time` — Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished.. Пример: `"2025-05-15T14:45:00.000Z"` + - `duration: integer, int32` — Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи.. Пример: `900` + - `members: array of object` — Список участников звонка. Присутствует для события finished. + - `user_id: integer, int32` (required) — Идентификатор участника. Пример: `2345` + - `joined_at: date-time` (required) — Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` + - `left_at: date-time` (required) — Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка.. Пример: `"2025-05-15T14:45:00.000Z"` + - `recording_id: integer, int32` — Идентификатор записи. Присутствует для события recording_ready.. Пример: `4567` + - `file_id: integer, int32` — Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан.. Пример: `89012` + - `url: string` — Прямая ссылка на файл записи. Присутствует для события recording_ready.. Пример: `"https://api.pachca.com/files/89012"` + - `size: integer, int32` — Размер файла записи в байтах. Присутствует для события recording_ready.. Пример: `10485760` + - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400` - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` @@ -11468,7 +11566,7 @@ users = await with_retry(lambda: client.users.list_users()) - `id: string` (required) — Уникальный идентификатор события. Пример: `"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14"` - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` - `event_key: string` (required) — Ключ типа события - Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация) + Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация), `bot_deleted` — Бот удалён - `entity_id: string` (required) — Идентификатор затронутой сущности. Пример: `"98765"` - `entity_type: string` (required) — Тип затронутой сущности. Пример: `"User"` - `actor_id: string` (required) — Идентификатор пользователя, выполнившего действие. Пример: `"98765"` @@ -11476,7 +11574,7 @@ users = await with_retry(lambda: client.users.list_users()) - `details: anyOf` (required) — Дополнительные детали события. Структура зависит от значения event_key — см. описания значений поля event_key. Для событий без деталей возвращается пустой объект **Возможные варианты:** - - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated + - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated, bot_deleted - **AuditDetailsUserUpdated**: При: user_updated - `changed_attrs: array of string` (required) — Список изменённых полей - **AuditDetailsRoleChanged**: При: user_role_changed @@ -23364,7 +23462,7 @@ response = await client.search.search_messages(params=params) - `limit: integer, int32` (default: 200) — Количество возвращаемых результатов за один запрос - `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`) - `sort: string` — Сортировка результатов - Значения: `by_score`, `alphabetical` + Значения: `by_score`, `alphabetical`, `creation` - `order: string` — Направление сортировки Значения: `asc`, `desc` - `created_from: date-time` — Фильтр по дате создания (от) @@ -25521,6 +25619,10 @@ curl -X POST "https://api.pachca.com/api/shared/v1/bot/recreate_token" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `"bm90X2FfcmVhbF90b2tlbg"` **Пример ответа:** @@ -25548,7 +25650,12 @@ curl -X POST "https://api.pachca.com/api/shared/v1/bot/recreate_token" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" }, "access_token": "bm90X2FfcmVhbF90b2tlbg" } @@ -25658,7 +25765,7 @@ import { PachcaClient } from "@pachca/sdk" const client = new PachcaClient("YOUR_TOKEN") const response = client.bots.selfRecreateBotToken() -// → BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }), accessToken: string }) +// → BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }), accessToken: string }) ``` ### Python @@ -25669,7 +25776,7 @@ from pachca.client import PachcaClient client = PachcaClient("YOUR_TOKEN") response = await client.bots.self_recreate_bot_token() -# → BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool), access_token: str) +# → BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd), access_token: str) ``` --- @@ -25744,6 +25851,10 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bot/webhook" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости **Пример ответа:** @@ -25770,7 +25881,12 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bot/webhook" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" } } } @@ -25910,7 +26026,7 @@ const client = new PachcaClient("YOUR_TOKEN") const request: BotWebhookSelfUpdateRequest = { webhook: { outgoingUrl: "https://www.website.com/tasks/new" } } const response = client.bots.selfUpdateBotWebhook(request) -// → BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }) }) +// → BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }) }) ``` ### Python @@ -25923,7 +26039,216 @@ client = PachcaClient("YOUR_TOKEN") request = BotWebhookSelfUpdateRequest(webhook=BotWebhookSelfUpdateRequestWebhook(outgoing_url="https://www.website.com/tasks/new")) response = await client.bots.self_update_bot_webhook(request=request) -# → BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool)) +# → BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd)) +``` + +--- + +--- [Document source](https://dev.pachca.com/api/bots/list.md) --- + +# Список ботов + +**Метод**: `GET` + +**Путь**: `/bots` + +> **Скоуп:** `bots:read` + +Метод для получения списка ботов. Возвращаются только боты, доступные вам для редактирования: созданные вами и те, чьи настройки открывают вам доступ к редактированию. + +## Параметры + +### Query параметры + +- `query: string` — Поисковая фраза для фильтрации ботов по имени +- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос +- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`) + + +## Пример запроса + +```bash +# Для получения следующей страницы используйте cursor из meta.paginate.next_page +curl "https://api.pachca.com/api/shared/v1/bots?query=задач&limit=1" \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" +``` + +## Ответы + +### 200: The request has succeeded. + +**Схема ответа:** + +- `data: array of object` (required) + - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816` + - `webhook: object` (required) — Объект параметров вебхука + - `name: string` (required) — Имя бота. Пример: `"Бот задач"` + - `nickname: string` (required) — Никнейм бота. Пример: `"tasks_bot"` + - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `"https://www.website.com/tasks/new"` + - `events: array of string` (required) — События, на которые подписан бот. Пример: `["message_new"]` + - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука + Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews) + - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `["/task"]` + - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `["messages:create"]` + - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `"Заказ от {{ client }} на сумму {{ amount }} ₽"` + - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука + Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики + - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `"challenge"` + - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` + - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` + - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости +- `meta: object` (required) — Метаданные пагинации + - `paginate: object` (required) — Вспомогательная информация + - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `"eyJxZCO2MiwiZGlyIjomSNYjIn3"` + - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `"eyJxZCO2MiwiZGlyIjoiYXNjIn0"` + - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true` + - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false` + +**Пример ответа:** + +```json +{ + "data": [ + { + "id": 1738816, + "webhook": { + "name": "Бот задач", + "nickname": "tasks_bot", + "outgoing_url": "https://www.website.com/tasks/new", + "events": [ + "message_new" + ], + "trigger_on": "commands", + "commands": [ + "/task" + ], + "scopes": [ + "messages:create" + ], + "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", + "template_engine": "liquid", + "challenge_key": "challenge", + "link_preview_enabled": true, + "ignore_self_messages": false, + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" + } + } + ], + "meta": { + "paginate": { + "next_page": "eyJxZCO2MiwiZGlyIjomSNYjIn3", + "prev_page": "eyJxZCO2MiwiZGlyIjoiYXNjIn0", + "has_next": true, + "has_prev": false + } + } +} +``` + +### 401: Access is unauthorized. + +**Схема ответа при ошибке:** + +- `error: string` (required) — Код ошибки. Пример: `"invalid_token"` +- `error_description: string` (required) — Описание ошибки. Пример: `"Access token is missing"` + +**Пример ответа:** + +```json +{ + "error": "invalid_token", + "error_description": "Access token is missing" +} +``` + +### 402: Client error + +**Схема ответа при ошибке:** + +- `errors: array of object` (required) — Массив ошибок + - `key: string` (required) — Ключ поля с ошибкой. Пример: `"field.name"` + - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `"invalid_value"` + - `message: string` (required) — Сообщение об ошибке. Пример: `"Поле не может быть пустым"` + - `code: string` (required) — Код ошибки + Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде + - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null` + **Структура значений Record:** + - Тип значения: `any` + +**Пример ответа:** + +```json +{ + "errors": [ + { + "key": "field.name", + "value": "invalid_value", + "message": "Поле не может быть пустым", + "code": "blank", + "payload": null + } + ] +} +``` + +### 403: Access is forbidden. + +**Схема ответа при ошибке:** + +- `error: string` (required) — Код ошибки. Пример: `"invalid_token"` +- `error_description: string` (required) — Описание ошибки. Пример: `"Access token is missing"` + +**Пример ответа:** + +```json +{ + "error": "invalid_token", + "error_description": "Access token is missing" +} +``` + + +## SDK примеры + +### TypeScript + +```typescript +import { PachcaClient } from "@pachca/sdk" + +const client = new PachcaClient("YOUR_TOKEN") + +const response = client.bots.listBots({ + query: "задач", + limit: 1, + cursor: "eyJpZCI6MTczODgxNn0" +}) +// → ListBotsResponse({ data: BotResponse[], meta: PaginationMeta }) +``` + +### Python + +```python +from pachca.client import PachcaClient +from pachca.models import ListBotsParams + +client = PachcaClient("YOUR_TOKEN") + +params = ListBotsParams( + query="задач", + limit=1, + cursor="eyJpZCI6MTczODgxNn0" +) +response = await client.bots.list_bots(params=params) +# → ListBotsResponse(data: list[BotResponse], meta: PaginationMeta) ``` --- @@ -25966,6 +26291,10 @@ response = await client.bots.self_update_bot_webhook(request=request) - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `who_can_add: string` — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости + - `can_edit: array of string` — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `single_chat: boolean` (default: false) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется.. Пример: `false` ### Пример @@ -25986,7 +26315,10 @@ response = await client.bots.self_update_bot_webhook(request=request) "messages:create" ], "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", - "challenge_key": "challenge" + "challenge_key": "challenge", + "can_edit": [ + "admin" + ] } } ``` @@ -26013,7 +26345,10 @@ curl "https://api.pachca.com/api/shared/v1/bots" \ "messages:create" ], "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", - "challenge_key": "challenge" + "challenge_key": "challenge", + "can_edit": [ + "admin" + ] } }' ``` @@ -26042,6 +26377,10 @@ curl "https://api.pachca.com/api/shared/v1/bots" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `"bm90X2FfcmVhbF90b2tlbg"` **Пример ответа:** @@ -26069,7 +26408,12 @@ curl "https://api.pachca.com/api/shared/v1/bots" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" }, "access_token": "bm90X2FfcmVhbF90b2tlbg" } @@ -26174,7 +26518,7 @@ curl "https://api.pachca.com/api/shared/v1/bots" \ ### TypeScript ```typescript -import { BotCreateRequest, BotCreateRequestWebhook, BotEventName, BotTemplateEngine, BotTriggerOn, PachcaClient } from "@pachca/sdk" +import { BotCanEdit, BotCreateRequest, BotCreateRequestWebhook, BotEventName, BotTemplateEngine, BotTriggerOn, BotWhoCanAdd, PachcaClient } from "@pachca/sdk" const client = new PachcaClient("YOUR_TOKEN") @@ -26192,18 +26536,21 @@ const request: BotCreateRequest = { challengeKey: "challenge", linkPreviewEnabled: true, ignoreSelfMessages: false, - eventsHistoryEnabled: false + eventsHistoryEnabled: false, + whoCanAdd: BotWhoCanAdd.Creator, + canEdit: [BotCanEdit.Admin], + singleChat: false } } const response = client.bots.createBot(request) -// → BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }), accessToken: string }) +// → BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }), accessToken: string }) ``` ### Python ```python from pachca.client import PachcaClient -from pachca.models import BotCreateRequest, BotCreateRequestWebhook, BotEventName, BotTemplateEngine, BotTriggerOn +from pachca.models import BotCanEdit, BotCreateRequest, BotCreateRequestWebhook, BotEventName, BotTemplateEngine, BotTriggerOn, BotWhoCanAdd client = PachcaClient("YOUR_TOKEN") @@ -26221,11 +26568,14 @@ request = BotCreateRequest( challenge_key="challenge", link_preview_enabled=True, ignore_self_messages=False, - events_history_enabled=False + events_history_enabled=False, + who_can_add=BotWhoCanAdd.CREATOR, + can_edit=[BotCanEdit.ADMIN], + single_chat=False ) ) response = await client.bots.create_bot(request=request) -# → BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool), access_token: str) +# → BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd), access_token: str) ``` --- @@ -26280,6 +26630,10 @@ curl "https://api.pachca.com/api/shared/v1/bots/1738816" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости **Пример ответа:** @@ -26306,7 +26660,12 @@ curl "https://api.pachca.com/api/shared/v1/bots/1738816" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" } } } @@ -26415,7 +26774,7 @@ import { PachcaClient } from "@pachca/sdk" const client = new PachcaClient("YOUR_TOKEN") const response = client.bots.getBot(1738816) -// → BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }) }) +// → BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }) }) ``` ### Python @@ -26426,7 +26785,7 @@ from pachca.client import PachcaClient client = PachcaClient("YOUR_TOKEN") response = await client.bots.get_bot(id=1738816) -# → BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool)) +# → BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd)) ``` --- @@ -26478,6 +26837,9 @@ response = await client.bots.get_bot(id=1738816) - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `who_can_add: string` — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости + - `can_edit: array of string` — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` ### Пример @@ -26498,7 +26860,10 @@ response = await client.bots.get_bot(id=1738816) "messages:create" ], "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", - "challenge_key": "challenge" + "challenge_key": "challenge", + "can_edit": [ + "admin" + ] } } ``` @@ -26525,7 +26890,10 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bots/1738816" \ "messages:create" ], "template": "Заказ от {{ client }} на сумму {{ amount }} ₽", - "challenge_key": "challenge" + "challenge_key": "challenge", + "can_edit": [ + "admin" + ] } }' ``` @@ -26554,6 +26922,10 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bots/1738816" \ - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости **Пример ответа:** @@ -26580,7 +26952,12 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bots/1738816" \ "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" } } } @@ -26744,7 +27121,7 @@ curl -X PUT "https://api.pachca.com/api/shared/v1/bots/1738816" \ ### TypeScript ```typescript -import { BotEventName, BotTemplateEngine, BotTriggerOn, BotUpdateRequest, BotUpdateRequestWebhook, PachcaClient } from "@pachca/sdk" +import { BotCanEdit, BotEventName, BotTemplateEngine, BotTriggerOn, BotUpdateRequest, BotUpdateRequestWebhook, BotWhoCanAdd, PachcaClient } from "@pachca/sdk" const client = new PachcaClient("YOUR_TOKEN") @@ -26762,18 +27139,20 @@ const request: BotUpdateRequest = { challengeKey: "challenge", linkPreviewEnabled: true, ignoreSelfMessages: false, - eventsHistoryEnabled: false + eventsHistoryEnabled: false, + whoCanAdd: BotWhoCanAdd.Creator, + canEdit: [BotCanEdit.Admin] } } const response = client.bots.updateBot(1738816, request) -// → BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }) }) +// → BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }) }) ``` ### Python ```python from pachca.client import PachcaClient -from pachca.models import BotEventName, BotTemplateEngine, BotTriggerOn, BotUpdateRequest, BotUpdateRequestWebhook +from pachca.models import BotCanEdit, BotEventName, BotTemplateEngine, BotTriggerOn, BotUpdateRequest, BotUpdateRequestWebhook, BotWhoCanAdd client = PachcaClient("YOUR_TOKEN") @@ -26791,11 +27170,164 @@ request = BotUpdateRequest( challenge_key="challenge", link_preview_enabled=True, ignore_self_messages=False, - events_history_enabled=False + events_history_enabled=False, + who_can_add=BotWhoCanAdd.CREATOR, + can_edit=[BotCanEdit.ADMIN] ) ) response = await client.bots.update_bot(id=1738816, request=request) -# → BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool)) +# → BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd)) +``` + +--- + +--- [Document source](https://dev.pachca.com/api/bots/delete.md) --- + +# Удаление бота + +**Метод**: `DELETE` + +**Путь**: `/bots/{id}` + +> **Скоуп:** `bots:write` + +Метод для удаления бота. Прежний `access_token` бота сразу инвалидируется, бот исключается из всех чатов, его исходящий вебхук удаляется. + +Удаление доступно создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Владельцы и администраторы чатов удалять бота не могут, даже если им разрешено его редактировать. + +Для удаления бота вам необходимо знать его `id` и указать его в `URL` запроса. + +## Параметры + +### Path параметры + +- `id: integer, int32` (required) — Идентификатор бота + + +## Пример запроса + +```bash +curl -X DELETE "https://api.pachca.com/api/shared/v1/bots/1738816" \ + -H "Authorization: Bearer YOUR_ACCESS_TOKEN" +``` + +## Ответы + +### 204: There is no content to send for this request, but the headers may be useful. + +### 401: Access is unauthorized. + +**Схема ответа при ошибке:** + +- `error: string` (required) — Код ошибки. Пример: `"invalid_token"` +- `error_description: string` (required) — Описание ошибки. Пример: `"Access token is missing"` + +**Пример ответа:** + +```json +{ + "error": "invalid_token", + "error_description": "Access token is missing" +} +``` + +### 402: Client error + +**Схема ответа при ошибке:** + +- `errors: array of object` (required) — Массив ошибок + - `key: string` (required) — Ключ поля с ошибкой. Пример: `"field.name"` + - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `"invalid_value"` + - `message: string` (required) — Сообщение об ошибке. Пример: `"Поле не может быть пустым"` + - `code: string` (required) — Код ошибки + Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде + - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null` + **Структура значений Record:** + - Тип значения: `any` + +**Пример ответа:** + +```json +{ + "errors": [ + { + "key": "field.name", + "value": "invalid_value", + "message": "Поле не может быть пустым", + "code": "blank", + "payload": null + } + ] +} +``` + +### 403: Access is forbidden. + +**Схема ответа при ошибке:** + +- `error: string` (required) — Код ошибки. Пример: `"invalid_token"` +- `error_description: string` (required) — Описание ошибки. Пример: `"Access token is missing"` + +**Пример ответа:** + +```json +{ + "error": "invalid_token", + "error_description": "Access token is missing" +} +``` + +### 404: The server cannot find the requested resource. + +**Схема ответа при ошибке:** + +- `errors: array of object` (required) — Массив ошибок + - `key: string` (required) — Ключ поля с ошибкой. Пример: `"field.name"` + - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `"invalid_value"` + - `message: string` (required) — Сообщение об ошибке. Пример: `"Поле не может быть пустым"` + - `code: string` (required) — Код ошибки + Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде + - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null` + **Структура значений Record:** + - Тип значения: `any` + +**Пример ответа:** + +```json +{ + "errors": [ + { + "key": "field.name", + "value": "invalid_value", + "message": "Поле не может быть пустым", + "code": "blank", + "payload": null + } + ] +} +``` + + +## SDK примеры + +### TypeScript + +```typescript +import { PachcaClient } from "@pachca/sdk" + +const client = new PachcaClient("YOUR_TOKEN") + +client.bots.deleteBot(1738816) +``` + +### Python + +```python +from pachca.client import PachcaClient + +client = PachcaClient("YOUR_TOKEN") + +await client.bots.delete_bot(id=1738816) ``` --- @@ -26812,7 +27344,7 @@ response = await client.bots.update_bot(id=1738816, request=request) Метод генерирует боту новый `access_token` и сразу инвалидирует прежний. Используйте его при компрометации токена или плановой ротации секрета в `CI`. -Доступен администратору, владельцу компании или создателю бота. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу. +Ротация доступна создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу. ## Параметры @@ -26852,6 +27384,10 @@ curl -X POST "https://api.pachca.com/api/shared/v1/bots/1738816/recreate_token" - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true` - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false` - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false` + - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false` + - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `["admin"]` + - `who_can_add: string` (required) — Кто может добавлять бота в чаты + Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `"bm90X2FfcmVhbF90b2tlbg"` **Пример ответа:** @@ -26879,7 +27415,12 @@ curl -X POST "https://api.pachca.com/api/shared/v1/bots/1738816/recreate_token" "challenge_key": "challenge", "link_preview_enabled": true, "ignore_self_messages": false, - "events_history_enabled": false + "events_history_enabled": false, + "single_chat": false, + "can_edit": [ + "admin" + ], + "who_can_add": "creator" }, "access_token": "bm90X2FfcmVhbF90b2tlbg" } @@ -26989,7 +27530,7 @@ import { PachcaClient } from "@pachca/sdk" const client = new PachcaClient("YOUR_TOKEN") const response = client.bots.recreateBotToken(1738816) -// → BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }), accessToken: string }) +// → BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }), accessToken: string }) ``` ### Python @@ -27000,7 +27541,7 @@ from pachca.client import PachcaClient client = PachcaClient("YOUR_TOKEN") response = await client.bots.recreate_bot_token(id=1738816) -# → BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool), access_token: str) +# → BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd), access_token: str) ``` --- @@ -27136,6 +27677,31 @@ curl "https://api.pachca.com/api/shared/v1/webhooks/events?limit=1" \ - `user_id: integer, int32` (required) — Идентификатор отправителя сообщения. Пример: `2345` - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2024-09-18T19:53:14.000Z"` - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1726685594` + - **VideoCallWebhookPayload**: Структура исходящего вебхука о видеозвонке + - `type: string` (required) — Тип объекта. Пример: `"video_call"` + Значения: `video_call` — Для видеозвонков всегда video_call + - `event: string` (required) — Тип события + Значения: `started` — Видеозвонок начался, `finished` — Видеозвонок завершился, `recording_ready` — Запись видеозвонка готова + - `video_room_id: integer, int32` (required) — Идентификатор видеозвонка. Пример: `9012` + - `chat_id: integer, int32` (required) — Идентификатор чата, в котором проходит видеозвонок. Пример: `23438` + - `owner_id: integer, int32` (required) — Идентификатор пользователя, начавшего видеозвонок. Пример: `2345` + - `thread: object` — Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде. + - `id: integer, int32` (required) — Идентификатор треда. Пример: `12345` + - `chat_id: integer, int32` (required) — Идентификатор чата треда. Пример: `67890` + - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому создан тред. Пример: `268092` + - `message_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому создан тред. Пример: `23438` + - `started_at: date-time` — Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished.. Пример: `"2025-05-15T14:30:00.000Z"` + - `finished_at: date-time` — Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished.. Пример: `"2025-05-15T14:45:00.000Z"` + - `duration: integer, int32` — Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи.. Пример: `900` + - `members: array of object` — Список участников звонка. Присутствует для события finished. + - `user_id: integer, int32` (required) — Идентификатор участника. Пример: `2345` + - `joined_at: date-time` (required) — Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` + - `left_at: date-time` (required) — Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка.. Пример: `"2025-05-15T14:45:00.000Z"` + - `recording_id: integer, int32` — Идентификатор записи. Присутствует для события recording_ready.. Пример: `4567` + - `file_id: integer, int32` — Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан.. Пример: `89012` + - `url: string` — Прямая ссылка на файл записи. Присутствует для события recording_ready.. Пример: `"https://api.pachca.com/files/89012"` + - `size: integer, int32` — Размер файла записи в байтах. Присутствует для события recording_ready.. Пример: `10485760` + - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400` - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` - `meta: object` (required) — Метаданные пагинации - `paginate: object` (required) — Вспомогательная информация @@ -27509,7 +28075,7 @@ await client.bots.delete_webhook_event(id="01KAJZ2XDSS2S3DSW9EXJZ0TBV") - `start_time: date-time` — Начальная метка времени (включительно) - `end_time: date-time` — Конечная метка времени (исключительно) - `event_key: string` — Фильтр по конкретному типу события - Значения: `user_login`, `user_logout`, `user_2fa_fail`, `user_2fa_success`, `user_created`, `user_deleted`, `user_role_changed`, `user_updated`, `tag_created`, `tag_deleted`, `user_added_to_tag`, `user_removed_from_tag`, `chat_created`, `chat_renamed`, `chat_permission_changed`, `user_chat_join`, `user_chat_leave`, `tag_added_to_chat`, `tag_removed_from_chat`, `message_updated`, `message_deleted`, `message_created`, `reaction_created`, `reaction_deleted`, `thread_created`, `access_token_created`, `access_token_updated`, `access_token_destroy`, `kms_encrypt`, `kms_decrypt`, `audit_events_accessed`, `dlp_violation_detected`, `search_users_api`, `search_chats_api`, `search_messages_api`, `bot_scopes_updated`, `bot_webhook_settings_updated`, `bot_token_recreated` + Значения: `user_login`, `user_logout`, `user_2fa_fail`, `user_2fa_success`, `user_created`, `user_deleted`, `user_role_changed`, `user_updated`, `tag_created`, `tag_deleted`, `user_added_to_tag`, `user_removed_from_tag`, `chat_created`, `chat_renamed`, `chat_permission_changed`, `user_chat_join`, `user_chat_leave`, `tag_added_to_chat`, `tag_removed_from_chat`, `message_updated`, `message_deleted`, `message_created`, `reaction_created`, `reaction_deleted`, `thread_created`, `access_token_created`, `access_token_updated`, `access_token_destroy`, `kms_encrypt`, `kms_decrypt`, `audit_events_accessed`, `dlp_violation_detected`, `search_users_api`, `search_chats_api`, `search_messages_api`, `bot_scopes_updated`, `bot_webhook_settings_updated`, `bot_token_recreated`, `bot_deleted` - `actor_id: string` — Идентификатор пользователя, выполнившего действие - `actor_type: string` — Тип актора - `entity_id: string` — Идентификатор затронутой сущности @@ -27536,7 +28102,7 @@ curl "https://api.pachca.com/api/shared/v1/audit_events?start_time=2025-05-01T09 - `id: string` (required) — Уникальный идентификатор события. Пример: `"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14"` - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `"2025-05-15T14:30:00.000Z"` - `event_key: string` (required) — Ключ типа события - Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация) + Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация), `bot_deleted` — Бот удалён - `entity_id: string` (required) — Идентификатор затронутой сущности. Пример: `"98765"` - `entity_type: string` (required) — Тип затронутой сущности. Пример: `"User"` - `actor_id: string` (required) — Идентификатор пользователя, выполнившего действие. Пример: `"98765"` @@ -27544,7 +28110,7 @@ curl "https://api.pachca.com/api/shared/v1/audit_events?start_time=2025-05-01T09 - `details: anyOf` (required) — Дополнительные детали события. Структура зависит от значения event_key — см. описания значений поля event_key. Для событий без деталей возвращается пустой объект **Возможные варианты:** - - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated + - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated, bot_deleted - **AuditDetailsUserUpdated**: При: user_updated - `changed_attrs: array of string` (required) — Список изменённых полей - **AuditDetailsRoleChanged**: При: user_role_changed diff --git a/apps/docs/public/llms.txt b/apps/docs/public/llms.txt index 64f371cf..b1ac0393 100644 --- a/apps/docs/public/llms.txt +++ b/apps/docs/public/llms.txt @@ -6,7 +6,7 @@ > **Как агенту читать эту доку:** любую страницу можно получить в Markdown — добавь `.md` к URL или пошли заголовок `Accept: text/markdown`. Ссылки в разделах «Частые задачи», «Руководства» и «API-методы» уже ведут на `.md` — запрашивай напрямую. Точечные запросы по API без загрузки всего: `npx -y @pachca/cli api ls`, далее `npx -y @pachca/cli api <МЕТОД> <путь> --describe` (схема — `--spec`, полный референс — `--docs`). -> Полная документация одним файлом: [llms-full.txt](https://dev.pachca.com/llms-full.txt) (~387K токенов — обычно не помещается в контекст целиком). +> Полная документация одним файлом: [llms-full.txt](https://dev.pachca.com/llms-full.txt) (~397K токенов — обычно не помещается в контекст целиком). > English-only: [llms-en.txt](https://dev.pachca.com/llms-en.txt) (~13K токенов). @@ -52,9 +52,9 @@ | SDK | Типизированные клиенты для 6 языков | 78–104 | | Agent Skills | Скиллы для AI-агентов и установка | 105–128 | | Руководства | Страницы-руководства (Markdown по `.md`) | 129–189 | -| API-методы | Все эндпоинты, сгруппированы по разделам | 190–297 | -| Обновления | Журнал обновлений по датам | 298–351 | -| Дополнительно | Прочие ссылки и контакты | 352–360 | +| API-методы | Все эндпоинты, сгруппированы по разделам | 190–299 | +| Обновления | Журнал обновлений по датам | 300–354 | +| Дополнительно | Прочие ссылки и контакты | 355–363 | ## CLI Quick Start @@ -278,9 +278,11 @@ C#: new PachcaClient("TOKEN") → await client.Messages.CreateMessage ## Bots - [Ротация собственного токена бота](https://dev.pachca.com/api/bots/recreate-token-self.md): POST /bot/recreate_token - [Саморегистрация вебхука бота](https://dev.pachca.com/api/bots/update-webhook.md): PUT /bot/webhook +- [Список ботов](https://dev.pachca.com/api/bots/list.md): GET /bots - [Новый бот](https://dev.pachca.com/api/bots/create.md): POST /bots - [Информация о боте](https://dev.pachca.com/api/bots/get.md): GET /bots/{id} - [Редактирование бота](https://dev.pachca.com/api/bots/update.md): PUT /bots/{id} +- [Удаление бота](https://dev.pachca.com/api/bots/delete.md): DELETE /bots/{id} - [Ротация токена бота](https://dev.pachca.com/api/bots/recreate-token.md): POST /bots/{id}/recreate_token - [История событий](https://dev.pachca.com/api/bots/list-events.md): GET /webhooks/events - [Удаление события](https://dev.pachca.com/api/bots/remove-event.md): DELETE /webhooks/events/{id} @@ -296,6 +298,7 @@ C#: new PachcaClient("TOKEN") → await client.Messages.CreateMessage - [Получение подписи, ключа и других параметров](https://dev.pachca.com/api/files/uploads.md): POST /uploads ## Обновления +- [07 июля 2026 — Список и удаление ботов, права доступа бота, вебхуки видеозвонков](https://dev.pachca.com/updates/2026-07-07.md) - [24 июня 2026 — Ротация токена бота и новые настройки вебхука](https://dev.pachca.com/updates/2026-06-24.md) - [19 июня 2026 — Настройки входящего вебхука бота и сортировка в поиске сообщений](https://dev.pachca.com/updates/2026-06-19.md) - [16 июня 2026 — Настраиваемые скоупы ботов и саморегистрация вебхука](https://dev.pachca.com/updates/2026-06-16.md) diff --git a/apps/docs/public/pachca.postman_collection.json b/apps/docs/public/pachca.postman_collection.json index 88aad4b3..a347f915 100644 --- a/apps/docs/public/pachca.postman_collection.json +++ b/apps/docs/public/pachca.postman_collection.json @@ -1750,6 +1750,22 @@ } } }, + { + "name": "Список ботов", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/bots", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "bots" + ] + } + } + }, { "name": "Новый бот", "request": { @@ -1771,7 +1787,7 @@ }, "body": { "mode": "raw", - "raw": "{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\"\n }\n}", + "raw": "{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\",\n \"can_edit\": [\n \"admin\"\n ]\n }\n}", "options": { "raw": { "language": "json" @@ -1831,7 +1847,7 @@ }, "body": { "mode": "raw", - "raw": "{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\"\n }\n}", + "raw": "{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\",\n \"can_edit\": [\n \"admin\"\n ]\n }\n}", "options": { "raw": { "language": "json" @@ -1840,6 +1856,29 @@ } } }, + { + "name": "Удаление бота", + "request": { + "method": "DELETE", + "header": [], + "url": { + "raw": "{{baseUrl}}/bots/:id", + "host": [ + "{{baseUrl}}" + ], + "path": [ + "bots", + ":id" + ], + "variable": [ + { + "key": "id", + "value": "" + } + ] + } + } + }, { "name": "Ротация токена бота", "request": { diff --git a/apps/docs/public/skill.md b/apps/docs/public/skill.md index 4c4aa737..6c69601e 100644 --- a/apps/docs/public/skill.md +++ b/apps/docs/public/skill.md @@ -145,9 +145,11 @@ Tokens are long-lived and do not expire. They can be reset by the admin/owner in ### Bots - `POST /bot/recreate_token` — Self recreate bot token - `PUT /bot/webhook` — Self update bot webhook +- `GET /bots` — List bots - `POST /bots` — Create bot - `GET /bots/{id}` — Get bot - `PUT /bots/{id}` — Update bot +- `DELETE /bots/{id}` — Delete bot - `POST /bots/{id}/recreate_token` — Recreate bot token - `GET /webhooks/events` — Get webhook events - `DELETE /webhooks/events/{id}` — Delete webhook event diff --git a/apps/docs/public/updates.md b/apps/docs/public/updates.md index f50f9198..bdb18d45 100644 --- a/apps/docs/public/updates.md +++ b/apps/docs/public/updates.md @@ -6,6 +6,57 @@ ## ☀️ Лето 2026 +### Список и удаление ботов, права доступа бота, вебхуки видеозвонков + +_07 июля 2026_ + +Появились методы для управления ботами. Метод [Список ботов](GET /bots) возвращает ботов, которые вы можете редактировать, с поиском по имени. Метод [Удаление бота](DELETE /bots/{id}) удаляет бота: прежний токен сразу инвалидируется, бот исключается из чатов, его исходящий вебхук удаляется. Оба метода требуют скоуп `bots:read` и `bots:write` соответственно. + +- [Список ботов](GET /bots) +- [Удаление бота](DELETE /bots/{id}) + +При создании и редактировании бота добавились настройки прав доступа: `who_can_add` — кто может добавлять бота в чаты (`creator`, `creator_admin`, `creator_admin_user`, `anyone`), и `can_edit` — роли, которым, помимо создателя, разрешено редактировать настройки бота (`admin`, `chat_owners`). При создании также можно передать `single_chat` — ограничить бота одной беседой или каналом (личные чаты и треды в ограничение не входят). Все три поля возвращаются в объекте бота. + +- [Новый бот](POST /bots) +- [Редактирование бота](PUT /bots/{id}) + +Появился новый тип исходящего вебхука — события видеозвонков: `video_call_started`, `video_call_finished` и `video_call_recording_ready`. Вебхук приходит для видеозвонков в чатах, где состоит бот. Подробнее о payload — в гайде [Настройка и типы событий](/guides/webhook/events#videozvonki). + +В журнале аудита появился тип события `bot_deleted` — удаление бота. Его можно фильтровать параметром `event_key`. + +- [Журнал аудита событий](GET /audit_events) + +В поиске сотрудников у параметра `sort` появилось значение `creation` — сортировка по дате создания (в дополнение к `by_score` и `alphabetical`). + +- [Поиск сотрудников](GET /search/users) + +### SDK v1.0.26 + +- Метод `Список ботов` (`GET /bots`) — список ботов с поиском по имени +- Метод `Удаление бота` (`DELETE /bots/{id}`) +- У бота поля прав доступа: `who_can_add`, `can_edit`, `single_chat` +- Новый payload исходящего вебхука `VideoCallWebhookPayload` и события `video_call_started`, `video_call_finished`, `video_call_recording_ready` +- Журнал аудита: новый тип события `bot_deleted` +- Поиск сотрудников (`GET /search/users`): значение сортировки `creation` (по дате создания) + +### CLI v2026.7.0 + +- `pachca bots list` — список ботов с поиском по имени (`--query`) +- `pachca bots delete` — удаление бота по его `id` +- `pachca bots create` и `bots update` — права доступа бота: `--who-can-add`, `--can-edit`, `--single-chat` +- `pachca search users` — значение сортировки `--sort creation` (по дате создания) + +### n8n Node v2.0.14 + +- Bot: новые операции `Get Many` (список ботов) и `Delete` +- Bot: поля прав доступа `who_can_add`, `can_edit`, `single_chat` в операциях `Create` и `Update` +- Trigger: события видеозвонков `video_call_started`, `video_call_finished`, `video_call_recording_ready` +- User: поиск — опция сортировки `Creation` (по дате создания) + +### Generator v1.1.9 + +- Kotlin SDK: сериализатор union исходящих вебхуков теперь строится по членам union, а не по захардкоженному списку — новый тип payload подхватывается автоматически (чинит компиляцию при добавлении `VideoCallWebhookPayload`) + ### Ротация токена бота и новые настройки вебхука _24 июня 2026_ diff --git a/apps/docs/public/updates/2026-07-07.md b/apps/docs/public/updates/2026-07-07.md new file mode 100644 index 00000000..56b8b219 --- /dev/null +++ b/apps/docs/public/updates/2026-07-07.md @@ -0,0 +1,52 @@ +> Это Markdown-версия конкретной страницы. Для контекста за её пределами (правила API, полный перечень методов, авторизация) ОБЯЗАТЕЛЬНО открой [llms.txt](https://dev.pachca.com/llms.txt) перед ответом — это сэкономит токены и предотвратит неполный ответ. + +# Список и удаление ботов, права доступа бота, вебхуки видеозвонков + +_07 июля 2026_ + +Появились методы для управления ботами. Метод [Список ботов](GET /bots) возвращает ботов, которые вы можете редактировать, с поиском по имени. Метод [Удаление бота](DELETE /bots/{id}) удаляет бота: прежний токен сразу инвалидируется, бот исключается из чатов, его исходящий вебхук удаляется. Оба метода требуют скоуп `bots:read` и `bots:write` соответственно. + +- [Список ботов](GET /bots) +- [Удаление бота](DELETE /bots/{id}) + +При создании и редактировании бота добавились настройки прав доступа: `who_can_add` — кто может добавлять бота в чаты (`creator`, `creator_admin`, `creator_admin_user`, `anyone`), и `can_edit` — роли, которым, помимо создателя, разрешено редактировать настройки бота (`admin`, `chat_owners`). При создании также можно передать `single_chat` — ограничить бота одной беседой или каналом (личные чаты и треды в ограничение не входят). Все три поля возвращаются в объекте бота. + +- [Новый бот](POST /bots) +- [Редактирование бота](PUT /bots/{id}) + +Появился новый тип исходящего вебхука — события видеозвонков: `video_call_started`, `video_call_finished` и `video_call_recording_ready`. Вебхук приходит для видеозвонков в чатах, где состоит бот. Подробнее о payload — в гайде [Настройка и типы событий](/guides/webhook/events#videozvonki). + +В журнале аудита появился тип события `bot_deleted` — удаление бота. Его можно фильтровать параметром `event_key`. + +- [Журнал аудита событий](GET /audit_events) + +В поиске сотрудников у параметра `sort` появилось значение `creation` — сортировка по дате создания (в дополнение к `by_score` и `alphabetical`). + +- [Поиск сотрудников](GET /search/users) + +### SDK v1.0.26 + +- Метод `Список ботов` (`GET /bots`) — список ботов с поиском по имени +- Метод `Удаление бота` (`DELETE /bots/{id}`) +- У бота поля прав доступа: `who_can_add`, `can_edit`, `single_chat` +- Новый payload исходящего вебхука `VideoCallWebhookPayload` и события `video_call_started`, `video_call_finished`, `video_call_recording_ready` +- Журнал аудита: новый тип события `bot_deleted` +- Поиск сотрудников (`GET /search/users`): значение сортировки `creation` (по дате создания) + +### CLI v2026.7.0 + +- `pachca bots list` — список ботов с поиском по имени (`--query`) +- `pachca bots delete` — удаление бота по его `id` +- `pachca bots create` и `bots update` — права доступа бота: `--who-can-add`, `--can-edit`, `--single-chat` +- `pachca search users` — значение сортировки `--sort creation` (по дате создания) + +### n8n Node v2.0.14 + +- Bot: новые операции `Get Many` (список ботов) и `Delete` +- Bot: поля прав доступа `who_can_add`, `can_edit`, `single_chat` в операциях `Create` и `Update` +- Trigger: события видеозвонков `video_call_started`, `video_call_finished`, `video_call_recording_ready` +- User: поиск — опция сортировки `Creation` (по дате создания) + +### Generator v1.1.9 + +- Kotlin SDK: сериализатор union исходящих вебхуков теперь строится по членам union, а не по захардкоженному списку — новый тип payload подхватывается автоматически (чинит компиляцию при добавлении `VideoCallWebhookPayload`) diff --git a/apps/docs/public/updates/season/summer-2026.md b/apps/docs/public/updates/season/summer-2026.md index 5b5d0fcd..a3dc2ff9 100644 --- a/apps/docs/public/updates/season/summer-2026.md +++ b/apps/docs/public/updates/season/summer-2026.md @@ -2,6 +2,57 @@ # ☀️ Лето 2026 +### Список и удаление ботов, права доступа бота, вебхуки видеозвонков + +_07 июля 2026_ + +Появились методы для управления ботами. Метод [Список ботов](GET /bots) возвращает ботов, которые вы можете редактировать, с поиском по имени. Метод [Удаление бота](DELETE /bots/{id}) удаляет бота: прежний токен сразу инвалидируется, бот исключается из чатов, его исходящий вебхук удаляется. Оба метода требуют скоуп `bots:read` и `bots:write` соответственно. + +- [Список ботов](GET /bots) +- [Удаление бота](DELETE /bots/{id}) + +При создании и редактировании бота добавились настройки прав доступа: `who_can_add` — кто может добавлять бота в чаты (`creator`, `creator_admin`, `creator_admin_user`, `anyone`), и `can_edit` — роли, которым, помимо создателя, разрешено редактировать настройки бота (`admin`, `chat_owners`). При создании также можно передать `single_chat` — ограничить бота одной беседой или каналом (личные чаты и треды в ограничение не входят). Все три поля возвращаются в объекте бота. + +- [Новый бот](POST /bots) +- [Редактирование бота](PUT /bots/{id}) + +Появился новый тип исходящего вебхука — события видеозвонков: `video_call_started`, `video_call_finished` и `video_call_recording_ready`. Вебхук приходит для видеозвонков в чатах, где состоит бот. Подробнее о payload — в гайде [Настройка и типы событий](/guides/webhook/events#videozvonki). + +В журнале аудита появился тип события `bot_deleted` — удаление бота. Его можно фильтровать параметром `event_key`. + +- [Журнал аудита событий](GET /audit_events) + +В поиске сотрудников у параметра `sort` появилось значение `creation` — сортировка по дате создания (в дополнение к `by_score` и `alphabetical`). + +- [Поиск сотрудников](GET /search/users) + +### SDK v1.0.26 + +- Метод `Список ботов` (`GET /bots`) — список ботов с поиском по имени +- Метод `Удаление бота` (`DELETE /bots/{id}`) +- У бота поля прав доступа: `who_can_add`, `can_edit`, `single_chat` +- Новый payload исходящего вебхука `VideoCallWebhookPayload` и события `video_call_started`, `video_call_finished`, `video_call_recording_ready` +- Журнал аудита: новый тип события `bot_deleted` +- Поиск сотрудников (`GET /search/users`): значение сортировки `creation` (по дате создания) + +### CLI v2026.7.0 + +- `pachca bots list` — список ботов с поиском по имени (`--query`) +- `pachca bots delete` — удаление бота по его `id` +- `pachca bots create` и `bots update` — права доступа бота: `--who-can-add`, `--can-edit`, `--single-chat` +- `pachca search users` — значение сортировки `--sort creation` (по дате создания) + +### n8n Node v2.0.14 + +- Bot: новые операции `Get Many` (список ботов) и `Delete` +- Bot: поля прав доступа `who_can_add`, `can_edit`, `single_chat` в операциях `Create` и `Update` +- Trigger: события видеозвонков `video_call_started`, `video_call_finished`, `video_call_recording_ready` +- User: поиск — опция сортировки `Creation` (по дате создания) + +### Generator v1.1.9 + +- Kotlin SDK: сериализатор union исходящих вебхуков теперь строится по членам union, а не по захардкоженному списку — новый тип payload подхватывается автоматически (чинит компиляцию при добавлении `VideoCallWebhookPayload`) + ### Ротация токена бота и новые настройки вебхука _24 июня 2026_ diff --git a/apps/docs/public/workflows.arazzo.yaml b/apps/docs/public/workflows.arazzo.yaml index 47c52dde..8f322166 100644 --- a/apps/docs/public/workflows.arazzo.yaml +++ b/apps/docs/public/workflows.arazzo.yaml @@ -378,6 +378,25 @@ workflows: used for the request is invalidated immediately — be sure to save the new `access_token` from the response, otherwise the bot loses API access operationId: BotOperations_selfRecreateBotToken + - workflowId: find-and-delete-a-bot + summary: Find and delete a bot + description: >- + Deletion is irreversible: the bot token is invalidated immediately and the bot is removed from + chats. The event is recorded in the audit log as `bot_deleted`. + steps: + - stepId: find-and-delete-a-bot-1 + description: >- + With a user token (scope `bots:read`) get the list of bots you can edit: those you created + and those whose settings grant you edit access. Filter by name with `query`, take the next + page from `meta.paginate.next_page` + operationId: BotOperations_listBots + - stepId: find-and-delete-a-bot-2 + description: >- + Take the target bot `id` from the list and delete it (scope `bots:write`). Available to an + admin, the company owner or the bot creator — chat owners cannot delete a bot. The + previous token is invalidated immediately, the bot is removed from all chats, and its + outgoing webhook is deleted + operationId: BotOperations_deleteBot - workflowId: handle-incoming-webhook-event summary: Handle incoming webhook event description: >- diff --git a/apps/docs/scripts/skills/generate.ts b/apps/docs/scripts/skills/generate.ts index 31f3f6ff..85613315 100644 --- a/apps/docs/scripts/skills/generate.ts +++ b/apps/docs/scripts/skills/generate.ts @@ -613,6 +613,17 @@ function generateWebhookEventsMd(): string { ); lines.push(''); + lines.push('## Video calls'); + lines.push(''); + lines.push('Sent for video calls in chats where the bot is a member.'); + lines.push( + 'Field `event` distinguishes: `started`, `finished` (includes participants and duration), `recording_ready` (includes recording file `url`, `size`, `duration`).' + ); + lines.push( + 'Field `type` is always `video_call`. Common fields: `video_room_id`, `chat_id`, `owner_id`, `thread`.' + ); + lines.push(''); + lines.push('## Security'); lines.push(''); lines.push('1. Verify signature: `HMAC-SHA256(Signing secret, raw body)` === `Pachca-Signature`'); diff --git a/docs/api-audit.md b/docs/api-audit.md index 1b26ed12..3abef051 100644 --- a/docs/api-audit.md +++ b/docs/api-audit.md @@ -338,7 +338,7 @@ DLP документирован в **трёх** местах — при изм 7. **Проверить feature-гайды затронутой фичи** (`apps/docs/content/guides/**`). Особый случай: API получил конфигурацию для фичи, которая раньше настраивалась **только в интерфейсе** (например, поля входящего вебхука бота — `template`, `template_engine`, `challenge_key`, `link_preview_enabled` — стали приниматься в `POST`/`PUT /bots`). Тогда соответствующий гайд (`incoming-webhooks.mdx`, `bots/setup.mdx` и т.п.) обычно описывает фичу как UI-only и отстаёт — дописать блок «Настройка через API» с именами полей и ссылками на методы. Эти гайды НЕ генерируются из OpenAPI, в шагах 1–4 не видны. 8. Добавить файл обновления `apps/docs/content/updates/<дата>.md` (формат — [updates-format](./updates-format.md)) 9. Запустить `cd packages/spec && bun run generate` -10. Запустить `bun turbo check` +10. Запустить `bun turbo check`. **Если менялись модели / enum / union (а не только тексты доков) — дополнительно `bun run sdk:build`**: `turbo check` **не** компилирует SDK, и поломки генерации под Kotlin / Go / C# / Swift ловятся только этим скриптом (или в CI-джобе «SDK / Generate and build»). Пример: новый член union с непривычной формой поля компилируется в невалидный Kotlin — `turbo check` зелёный, а CI красный. Отсутствующий тулчейн скрипт помечает `SKIP` (не падает), поэтому для полного покрытия держать локально JDK/Go/.NET/Swift 11. Обновить таблицы в этом документе 12. **Проверить скиллы** — если затронуты API-методы, перейти к шагу ниже @@ -480,6 +480,49 @@ typespec.tsp → openapi.yaml → generate.ts + config.ts + workflows.ts → SKI Кратко: один файл на дату, `title` в frontmatter (не `##` в теле), ссылки на методы `[Название](METHOD /path)`. +### 6c. Правила текста описания метода (`@doc`) + +Перед написанием `@doc` нового метода — **прочитай, как уже описаны методы +того же типа** (получение списка, получение одного объекта, создание, +редактирование, удаление), и повтори их структуру и вводную фразу. Ниже — +общие правила. + +- **Держись стиля аналогов.** Вводное предложение, порядок изложения и + закрывающая фраза должны совпадать с уже описанными методами того же типа — + и в русском, и в английском переводе. Не придумывай свою формулировку, если + для этого типа метода уже есть устоявшаяся. +- **Не пересказывай таблицы.** Параметры запроса и поля ответа уже показаны в + таблицах на странице метода. В описании раскрывай **поведение** метода, а не + перечисляй отдельные параметры и поля. +- **Без лишних уточнений.** Не добавляй то, что и так подразумевается или + единообразно во всём API (принадлежность к рабочему пространству токена, тип + пагинации и подобное). +- **Доступ и права — сверяй с бэкендом и формулируй точно.** Описание доступа + должно отражать реальное правило, а не роль «вообще». Если доступ определяет + настройка самого ресурса, а роль лишь должна ей соответствовать — так и + писать, а не перечислять роли так, будто роль сама по себе открывает доступ + ко всем объектам. +- **Пиши только то, что подтвердил.** Не дописывай оговорок и деталей о + соседнем поведении, которых не проверил по бэкенду. + +Те же принципы — для описаний **параметров запроса и полей ответа**: + +- **Не выводи смысл поля из его названия — сверяй с бэкендом.** Что поле + включает и что исключает, на какие сущности распространяется, каков эффект + каждого допустимого значения. Название часто уже, шире или просто не о том. +- **Не выдавай ограничение за разрешение и наоборот.** Формулируй ровно ту + логику, что в коде: ограничивающее поле описывай как ограничение, а не как + «разрешено …». +- **Поясняй значения и граничные случаи.** Для флагов и enum — что означает + каждое значение; отдельно оговаривай пустое/нулевое значение и значение по + умолчанию, если у них особый смысл. +- **Не создавай впечатление, что настройка отменяет базовый доступ.** Если + поле добавляет права или роли поверх того, что доступно всегда, так и пиши, + а не так, будто оно заменяет собой весь доступ. +- **Указывай реальную область действия.** Если поле влияет не на все + сущности (только на часть типов, состояний и т.п.), это должно быть в + описании. + ### 7. Отчёт Вывести краткий отчёт: @@ -675,6 +718,33 @@ enum EnumName { - Для EN: добавить те же ключи в `x-enum-descriptions` соответствующего `target` в `packages/spec/overlay.en.yaml` (иначе `overlay:validate` упадёт). +### Грабли генерации SDK (сверять при правке моделей) + +`turbo check` эти ошибки НЕ ловит — они всплывают только при `sdk:build` / в +CI-джобе `sdk.yml` (см. §6.10). Частые причины, из-за которых валидная спека +даёт невалидный SDK: + +- **Многозначное перечисление — только именованным `enum`, не inline-объединением + строк.** Поле с несколькими строковыми значениями (`"a" | "b" | "c"`) выносить в + отдельный `enum` с `x-enum-descriptions`, а не писать инлайн в модели. Инлайн + многозначное объединение генератор не отображает в тип у части языков — + получается нетипизированное поле без сериализатора, SDK не компилируется. Одно + литеральное значение (`"video_call"`) инлайном — норма (это константа-дискриминатор). +- **Nullable определяется опциональностью (`?`), а не только `| null`.** Для + поля, которое всегда присутствует, но может быть `null`, генератор проставит + SDK-«optional» по признаку **опциональности** (`?`), а не по `| null`. Такое + поле писать `field?: T | null`, иначе в части языков оно станет non-null. + Сверять с тем, как оформлен тот же случай в соседней (аналогичной) модели. +- **Новый член дискриминируемого union — прогнать `sdk:build`.** Добавление + нового члена (например, нового payload вебхука) затрагивает сгенерированный + (де)сериализатор union в каждом языке — обязательно проверить, что он + компилируется во всех SDK, а не только что спека валидна. + +Общий принцип: **новый тип модели / enum / union копировать с ближайшего +существующего аналога** (та же форма полей, та же опциональность/nullable, тот +же способ описания enum), а не изобретать — генераторы настроены под +сложившиеся идиомы. + ### Операции (endpoints) Добавлять внутри соответствующего `interface` или создать новый: diff --git a/integrations/n8n/CHANGELOG.md b/integrations/n8n/CHANGELOG.md index e6f59fcb..fdb769a5 100644 --- a/integrations/n8n/CHANGELOG.md +++ b/integrations/n8n/CHANGELOG.md @@ -1,6 +1,16 @@ # Changelog +## 2.0.14 (2026-07-07) + +### Improvements + +- Bot: new `Get Many` operation — list bots with name search +- Bot: new `Delete` operation — delete a bot by its ID +- Bot: access-control fields on `Create`/`Update` and in the response — `Who Can Add`, `Can Edit`, `Single Chat` +- Trigger: video call events — `video_call_started`, `video_call_finished`, `video_call_recording_ready` +- User: search — `Creation` sort option (by creation date) + ## 2.0.13 (2026-06-24) ### Improvements diff --git a/integrations/n8n/README.md b/integrations/n8n/README.md index 1ce99c2c..74c679a1 100644 --- a/integrations/n8n/README.md +++ b/integrations/n8n/README.md @@ -24,7 +24,7 @@ Or install from archive (Docker, custom n8n images): # Download from GitHub Releases # Find the latest n8n-nodes-pachca.tgz at: # https://github.com/pachca/openapi/releases?q=n8n -wget https://github.com/pachca/openapi/releases/download/n8n-v2.0.13/n8n-nodes-pachca.tgz +wget https://github.com/pachca/openapi/releases/download/n8n-v2.0.14/n8n-nodes-pachca.tgz # Via npm (recommended) cd ~/.n8n/nodes && npm install ./n8n-nodes-pachca.tgz diff --git a/integrations/n8n/docs/DEVELOPMENT.md b/integrations/n8n/docs/DEVELOPMENT.md index 41b4b2a2..ed28e185 100644 --- a/integrations/n8n/docs/DEVELOPMENT.md +++ b/integrations/n8n/docs/DEVELOPMENT.md @@ -128,7 +128,7 @@ pkill -f n8n; npx n8n start ## Versioning -- **npm version**: SemVer (`MAJOR.MINOR.PATCH`), current: `2.0.13` +- **npm version**: SemVer (`MAJOR.MINOR.PATCH`), current: `2.0.14` - **n8n node version**: VersionedNodeType with `defaultVersion: 2` - `typeVersion: 1` — loads PachcaV1 (frozen V1 class) - `typeVersion: 2` — loads PachcaV2 (generated V2 class) diff --git a/integrations/n8n/nodes/Pachca/PachcaTrigger.node.ts b/integrations/n8n/nodes/Pachca/PachcaTrigger.node.ts index f4ffc54e..2c234e4b 100644 --- a/integrations/n8n/nodes/Pachca/PachcaTrigger.node.ts +++ b/integrations/n8n/nodes/Pachca/PachcaTrigger.node.ts @@ -27,6 +27,9 @@ const EVENT_FILTER: Record = { 'company_member_invite': { type: 'company_member', event: 'invite' }, 'company_member_suspend': { type: 'company_member', event: 'suspend' }, 'company_member_update': { type: 'company_member', event: 'update' }, + 'video_call_finished': { type: 'video_call', event: 'finished' }, + 'video_call_recording_ready': { type: 'video_call', event: 'recording_ready' }, + 'video_call_started': { type: 'video_call', event: 'started' }, }; export class PachcaTrigger implements INodeType { @@ -75,6 +78,9 @@ export class PachcaTrigger implements INodeType { { name: 'User Invited', value: 'company_member_invite' }, { name: 'User Suspended', value: 'company_member_suspend' }, { name: 'User Updated', value: 'company_member_update' }, + { name: 'VideoCall Finished', value: 'video_call_finished' }, + { name: 'VideoCall RecordingReady', value: 'video_call_recording_ready' }, + { name: 'VideoCall Started', value: 'video_call_started' }, ], default: 'new_message', description: 'The event to listen for', diff --git a/integrations/n8n/nodes/Pachca/SharedRouter.ts b/integrations/n8n/nodes/Pachca/SharedRouter.ts index b8ec24fe..a17b96f4 100644 --- a/integrations/n8n/nodes/Pachca/SharedRouter.ts +++ b/integrations/n8n/nodes/Pachca/SharedRouter.ts @@ -115,6 +115,12 @@ const ROUTES: Record> = { { api: 'outgoing_url', n8n: 'outgoingUrl' }, ], }, + getAll: { + method: 'GET' as IHttpRequestMethods, + path: '/bots', + paginated: true, + queryMap: [{ api: 'query', n8n: 'query' }], + }, create: { method: 'POST' as IHttpRequestMethods, path: '/bots', @@ -135,6 +141,9 @@ const ROUTES: Record> = { { api: 'link_preview_enabled', n8n: 'linkPreviewEnabled' }, { api: 'ignore_self_messages', n8n: 'ignoreSelfMessages' }, { api: 'events_history_enabled', n8n: 'eventsHistoryEnabled' }, + { api: 'who_can_add', n8n: 'whoCanAdd' }, + { api: 'can_edit', n8n: 'canEdit', isArray: true, arrayType: 'string' }, + { api: 'single_chat', n8n: 'singleChat' }, ], }, get: { @@ -162,8 +171,15 @@ const ROUTES: Record> = { { api: 'link_preview_enabled', n8n: 'linkPreviewEnabled' }, { api: 'ignore_self_messages', n8n: 'ignoreSelfMessages' }, { api: 'events_history_enabled', n8n: 'eventsHistoryEnabled' }, + { api: 'who_can_add', n8n: 'whoCanAdd' }, + { api: 'can_edit', n8n: 'canEdit', isArray: true, arrayType: 'string' }, ], }, + delete: { + method: 'DELETE' as IHttpRequestMethods, + path: '/bots/{id}', + pathParams: [{ api: 'id', n8n: 'id' }], + }, recreateToken: { method: 'POST' as IHttpRequestMethods, path: '/bots/{id}/recreate_token', diff --git a/integrations/n8n/nodes/Pachca/V2/BotDescription.ts b/integrations/n8n/nodes/Pachca/V2/BotDescription.ts index 316ba402..c9af4ca7 100644 --- a/integrations/n8n/nodes/Pachca/V2/BotDescription.ts +++ b/integrations/n8n/nodes/Pachca/V2/BotDescription.ts @@ -13,11 +13,21 @@ export const botOperations: INodeProperties[] = [ value: 'create', action: 'Create a bot', }, + { + name: 'Delete', + value: 'delete', + action: 'Delete a bot', + }, { name: 'Get', value: 'get', action: 'Get a bot', }, + { + name: 'Get Many', + value: 'getAll', + action: 'Get many bots', + }, { name: 'Get Many Events', value: 'getAllEvents', @@ -78,6 +88,47 @@ export const botFields: INodeProperties[] = [ displayOptions: { show: { resource: ['bot'], operation: ['updateWebhook'] } }, placeholder: 'https://www.website.com/tasks/new', }, + { + displayName: 'Requires owner, admin, user roles', + name: 'botGetAllNotice', + type: 'notice', + default: '', + displayOptions: { show: { resource: ['bot'], operation: ['getAll'] } }, + }, + { + displayName: 'Return All', + name: 'returnAll', + type: 'boolean', + default: false, + description: 'Whether to return all results or only up to a given limit', + displayOptions: { show: { resource: ['bot'], operation: ['getAll'] } }, + }, + { + displayName: 'Limit', + name: 'limit', + type: 'number', + default: 50, + description: 'Max number of results to return', + typeOptions: { minValue: 1, maxValue: 50 }, + displayOptions: { show: { resource: ['bot'], operation: ['getAll'], returnAll: [false] } }, + }, + { + displayName: 'Simplify', + name: 'simplify', + type: 'boolean', + default: true, + description: 'Whether to return a simplified version of the response instead of all fields', + displayOptions: { show: { resource: ['bot'], operation: ['getAll'] } }, + }, + { + displayName: 'Query', + name: 'query', + type: 'string', + default: "", + description: 'Search phrase to filter bots by name', + placeholder: 'task', + displayOptions: { show: { resource: ['bot'], operation: ['getAll'] } }, + }, { displayName: 'Requires owner, admin, user roles', name: 'botCreateNotice', @@ -103,6 +154,14 @@ export const botFields: INodeProperties[] = [ default: {}, displayOptions: { show: { resource: ['bot'], operation: ['create'] } }, options: [ + { + displayName: 'Can Edit', + name: 'canEdit', + type: 'string', + default: "", + description: 'Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty array means only the creator can edit.', + placeholder: 'admin', + }, { displayName: 'Challenge Key', name: 'challengeKey', @@ -172,6 +231,13 @@ export const botFields: INodeProperties[] = [ description: 'Bot token scopes (permissions). If omitted, the bot receives the default set.', placeholder: 'messages:create', }, + { + displayName: 'Single Chat', + name: 'singleChat', + type: 'boolean', + default: false, + description: 'Whether to restricts the bot to a single group chat. `true` — the bot can be added to one discussion or channel only, `false` — to multiple. Personal chats and threads don\'t count toward this limit. Set only on creation and not changed on update.', + }, { displayName: 'Template', name: 'template', @@ -199,6 +265,17 @@ export const botFields: INodeProperties[] = [ default: "commands", description: 'Outgoing webhook trigger condition', }, + { + displayName: 'Who Can Add', + name: 'whoCanAdd', + type: 'options', + options: [{ name: 'Anyone', value: 'anyone', description: 'Anyone, including guests' }, +{ name: 'Creator', value: 'creator', description: 'Only the bot creator' }, +{ name: 'Creator Admin', value: 'creator_admin', description: 'The creator and company administrators' }, +{ name: 'Creator Admin User', value: 'creator_admin_user', description: 'The creator, administrators, and company members' }], + default: "creator", + description: 'Who can add the bot to chats', + }, ], }, { @@ -259,6 +336,14 @@ export const botFields: INodeProperties[] = [ default: {}, displayOptions: { show: { resource: ['bot'], operation: ['update'] } }, options: [ + { + displayName: 'Can Edit', + name: 'canEdit', + type: 'string', + default: "", + description: 'Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty array means only the creator can edit.', + placeholder: 'admin', + }, { displayName: 'Challenge Key', name: 'challengeKey', @@ -363,8 +448,35 @@ export const botFields: INodeProperties[] = [ default: "commands", description: 'Outgoing webhook trigger condition', }, + { + displayName: 'Who Can Add', + name: 'whoCanAdd', + type: 'options', + options: [{ name: 'Anyone', value: 'anyone', description: 'Anyone, including guests' }, +{ name: 'Creator', value: 'creator', description: 'Only the bot creator' }, +{ name: 'Creator Admin', value: 'creator_admin', description: 'The creator and company administrators' }, +{ name: 'Creator Admin User', value: 'creator_admin_user', description: 'The creator, administrators, and company members' }], + default: "creator", + description: 'Who can add the bot to chats', + }, ], }, + { + displayName: 'ID', + name: 'id', + type: 'number', + required: true, + default: 0, + displayOptions: { show: { resource: ['bot'], operation: ['delete'] } }, + description: 'Bot ID', + }, + { + displayName: 'Requires owner, admin, user roles', + name: 'botDeleteNotice', + type: 'notice', + default: '', + displayOptions: { show: { resource: ['bot'], operation: ['delete'] } }, + }, { displayName: 'ID', name: 'id', diff --git a/integrations/n8n/nodes/Pachca/V2/SearchDescription.ts b/integrations/n8n/nodes/Pachca/V2/SearchDescription.ts index 398a4606..25ceceb9 100644 --- a/integrations/n8n/nodes/Pachca/V2/SearchDescription.ts +++ b/integrations/n8n/nodes/Pachca/V2/SearchDescription.ts @@ -302,7 +302,8 @@ export const searchFields: INodeProperties[] = [ name: 'sort', type: 'options', options: [{ name: 'Alphabetical', value: 'alphabetical', description: 'Alphabetically' }, -{ name: 'By Score', value: 'by_score', description: 'By relevance' }], +{ name: 'By Score', value: 'by_score', description: 'By relevance' }, +{ name: 'Creation', value: 'creation', description: 'By creation date' }], default: "", description: 'Sort results by', }, diff --git a/integrations/n8n/nodes/Pachca/V2/SecurityDescription.ts b/integrations/n8n/nodes/Pachca/V2/SecurityDescription.ts index 63c2d274..a7303f5e 100644 --- a/integrations/n8n/nodes/Pachca/V2/SecurityDescription.ts +++ b/integrations/n8n/nodes/Pachca/V2/SecurityDescription.ts @@ -105,6 +105,7 @@ export const securityFields: INodeProperties[] = [ { name: 'Access Token Destroy', value: 'access_token_destroy', description: 'Access token deleted' }, { name: 'Access Token Updated', value: 'access_token_updated' }, { name: 'Audit Events Accessed', value: 'audit_events_accessed', description: 'Audit logs accessed' }, +{ name: 'Bot Deleted', value: 'bot_deleted' }, { name: 'Bot Scopes Updated', value: 'bot_scopes_updated', description: 'Bot token scopes changed' }, { name: 'Bot Token Recreated', value: 'bot_token_recreated', description: 'Bot token recreated (rotation)' }, { name: 'Bot Webhook Settings Updated', value: 'bot_webhook_settings_updated', description: 'Bot outgoing webhook settings changed' }, diff --git a/integrations/n8n/package.json b/integrations/n8n/package.json index e6fa5c43..4cc1c597 100644 --- a/integrations/n8n/package.json +++ b/integrations/n8n/package.json @@ -1,6 +1,6 @@ { "name": "n8n-nodes-pachca", - "version": "2.0.13", + "version": "2.0.14", "description": "Pachca node for n8n workflow automation", "license": "MIT", "main": "index.js", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 0bc85b9d..ca245ea1 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 2026.7.0 (7 июля 2026) + +- **Добавлено** (bots list): Новая команда — список ботов с поиском по имени (`--query`) +- **Добавлено** (bots delete): Новая команда — удаление бота по его `id` +- **Добавлено** (bots create): Права доступа бота — параметры `who-can-add` (кто может добавлять бота в чаты), `can-edit` (роли, редактирующие настройки) и `single-chat` (только один чат) +- **Добавлено** (bots update): Права доступа бота — параметры `who-can-add` (кто может добавлять бота в чаты) и `can-edit` (роли, редактирующие настройки) +- **Добавлено** (search users): Значение сортировки `--sort creation` — по дате создания + ## 2026.6.3 (24 июня 2026) - **Изменено** (files, custom-properties, oauth): Команды реорганизованы по разделам: `common uploads`→`files uploads`, `common direct-url`→`files direct-url`, `common custom-properties`→`custom-properties list`, `common request-export`→`chats request-export`, `common get-exports`→`chats download-export`, `profile get-info`→`oauth token-info`, `link-previews add`→`messages unfurl`. Старые имена продолжают работать (скрытые алиасы) diff --git a/packages/cli/README.md b/packages/cli/README.md index 8547a476..2356c774 100644 --- a/packages/cli/README.md +++ b/packages/cli/README.md @@ -80,9 +80,11 @@ pachca guide # список всех сценариев |---------|---------| | `pachca bots recreate-token-self` | Ротация собственного токена бота | | `pachca bots update-webhook` | Саморегистрация вебхука бота | +| `pachca bots list` | Список ботов | | `pachca bots create` | Новый бот | | `pachca bots get` | Информация о боте | | `pachca bots update` | Редактирование бота | +| `pachca bots delete` | Удаление бота | | `pachca bots recreate-token` | Ротация токена бота | | `pachca bots list-events` | История событий | | `pachca bots remove-event` | Удаление события | diff --git a/packages/cli/oclif.manifest.json b/packages/cli/oclif.manifest.json index 7671f107..34139306 100644 --- a/packages/cli/oclif.manifest.json +++ b/packages/cli/oclif.manifest.json @@ -1 +1 @@ -{"commands":{"api":{"aliases":[],"args":{"method":{"description":"HTTP-метод (GET, POST, PUT, DELETE, PATCH)","name":"method","options":["GET","POST","PUT","DELETE","PATCH"],"required":true},"path":{"description":"Путь API (например, /messages)","name":"path","required":true}},"description":"Произвольный запрос к API. Список и справка: `api ls` (список эндпоинтов), `api <МЕТОД> <путь> --describe` / `--spec` / `--docs`","examples":["<%= config.bin %> api GET /messages --query chat_id=123","<%= config.bin %> api POST /messages -F message[chat_id]=12345 -f message[content]=\"Привет\"","<%= config.bin %> api POST /messages --input payload.json","<%= config.bin %> api POST /messages --data '{\"message\":{\"entity_id\":123,\"content\":\"Привет\"}}'","<%= config.bin %> api GET /profile -o yaml","<%= config.bin %> api ls","<%= config.bin %> api ls --json","<%= config.bin %> api POST /messages --describe","<%= config.bin %> api GET /messages --spec","<%= config.bin %> api POST /messages --docs"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"raw-field":{"char":"f","description":"Строковое поле (key=value)","name":"raw-field","hasDynamicHelp":false,"multiple":true,"type":"option"},"field":{"char":"F","description":"Типизированное поле (числа/boolean автоматически, @file читает файл)","name":"field","hasDynamicHelp":false,"multiple":true,"type":"option"},"input":{"description":"JSON-файл с телом запроса (- для stdin)","name":"input","hasDynamicHelp":false,"multiple":false,"type":"option"},"data":{"description":"Тело запроса инлайн JSON-строкой","name":"data","hasDynamicHelp":false,"multiple":false,"type":"option"},"query":{"description":"Query-параметр (key=value)","name":"query","hasDynamicHelp":false,"multiple":true,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"api","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":false,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","api.js"]},"auth:list":{"aliases":[],"args":{},"description":"Список сохранённых профилей","examples":["<%= config.bin %> auth list","<%= config.bin %> auth list -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","list.js"]},"auth:login":{"aliases":[],"args":{},"description":"Авторизация и сохранение токена","examples":["<%= config.bin %> auth login","<%= config.bin %> auth login --profile personal","<%= config.bin %> auth login --profile ci --token $PACHCA_TOKEN"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Имя профиля (по умолчанию \"default\")","name":"profile","default":"default","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Токен для сохранения (без интерактивного ввода)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:login","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","login.js"]},"auth:logout":{"aliases":[],"args":{"profile":{"description":"Имя профиля для удаления","name":"profile","required":false}},"description":"Удаление сохранённого профиля","examples":["<%= config.bin %> auth logout bot-notify","<%= config.bin %> auth logout"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:logout","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","logout.js"]},"auth:status":{"aliases":[],"args":{},"description":"Статус текущего профиля","examples":["<%= config.bin %> auth status","<%= config.bin %> auth status -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","status.js"]},"auth:switch":{"aliases":[],"args":{"profile":{"description":"Имя профиля для переключения","name":"profile","required":true}},"description":"Переключение активного профиля","examples":["<%= config.bin %> auth switch bot-support"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:switch","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","switch.js"]},"bots:create":{"aliases":[],"args":{},"description":"Новый бот","examples":["Создать бота через API и получить токен:\n $ pachca bots create","Настроить бота с исходящим вебхуком:\n $ pachca bots create"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Имя бота","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"nickname":{"description":"Никнейм бота. Должен заканчиваться на `_bot`.","name":"nickname","hasDynamicHelp":false,"multiple":false,"type":"option"},"outgoing-url":{"description":"URL исходящего вебхука","name":"outgoing-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"events":{"description":"События, на которые подписан бот","name":"events","hasDynamicHelp":false,"multiple":false,"type":"option"},"trigger-on":{"description":"Условие срабатывания исходящего вебхука","name":"trigger-on","hasDynamicHelp":false,"multiple":false,"type":"option"},"commands":{"description":"Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands","name":"commands","hasDynamicHelp":false,"multiple":false,"type":"option"},"scopes":{"description":"Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.","name":"scopes","hasDynamicHelp":false,"multiple":false,"type":"option"},"template":{"description":"Шаблон форматирования входящего вебхука","name":"template","hasDynamicHelp":false,"multiple":false,"type":"option"},"template-engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","name":"template-engine","hasDynamicHelp":false,"multiple":false,"type":"option"},"challenge-key":{"description":"Название поля проверки для верификации входящего вебхука","name":"challenge-key","hasDynamicHelp":false,"multiple":false,"type":"option"},"link-preview-enabled":{"description":"Показывать превью ссылок в сообщениях входящего вебхука","name":"link-preview-enabled","allowNo":true,"type":"boolean"},"ignore-self-messages":{"description":"Игнорировать входящие сообщения, отправленные самим ботом","name":"ignore-self-messages","allowNo":true,"type":"boolean"},"events-history-enabled":{"description":"Сохранять историю событий бота для последующего получения через метод истории событий","name":"events-history-enabled","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:write","apiMethod":"POST","apiPath":"/bots","defaultColumns":["id","webhook","access_token"],"requiredFlags":["name"],"isESM":true,"relativePath":["dist","commands","bots","create.js"]},"bots:get":{"aliases":[],"args":{"id":{"description":"Идентификатор бота (pachca bots list)","name":"id","required":true}},"description":"Информация о боте","examples":["Обновить Webhook URL бота:\n $ pachca bots update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:read","apiMethod":"GET","apiPath":"/bots/{id}","defaultColumns":["id","webhook"],"isESM":true,"relativePath":["dist","commands","bots","get.js"]},"bots:list-events":{"aliases":[],"args":{},"description":"История событий","examples":["Обработка событий через историю (polling):\n $ pachca bots list-events"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:list-events","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"webhooks:events:read","apiMethod":"GET","apiPath":"/webhooks/events","defaultColumns":["id","created_at","event_type","payload"],"isESM":true,"relativePath":["dist","commands","bots","list-events.js"]},"bots:recreate-token":{"aliases":[],"args":{"id":{"description":"Идентификатор бота (pachca bots list)","name":"id","required":true}},"description":"Ротация токена бота","examples":["Ротация токена бота:\n $ pachca bots recreate-token"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:recreate-token","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:write","apiMethod":"POST","apiPath":"/bots/{id}/recreate_token","defaultColumns":["id","webhook","access_token"],"isESM":true,"relativePath":["dist","commands","bots","recreate-token.js"]},"bots:recreate-token-self":{"aliases":[],"args":{},"description":"Ротация собственного токена бота","examples":["Ротация токена бота:\n $ pachca bots recreate-token-self"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:recreate-token-self","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bot_self:write","apiMethod":"POST","apiPath":"/bot/recreate_token","defaultColumns":["id","webhook","access_token"],"isESM":true,"relativePath":["dist","commands","bots","recreate-token-self.js"]},"bots:remove-event":{"aliases":[],"args":{"id":{"description":"Идентификатор события (pachca bots list)","name":"id","required":true}},"description":"Удаление события","examples":["Обработка событий через историю (polling):\n $ pachca bots remove-event"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:remove-event","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"webhooks:events:delete","apiMethod":"DELETE","apiPath":"/webhooks/events/{id}","isESM":true,"relativePath":["dist","commands","bots","remove-event.js"]},"bots:update":{"aliases":[],"args":{"id":{"description":"Идентификатор бота (pachca bots list)","name":"id","required":true}},"description":"Редактирование бота","examples":["Обновить Webhook URL бота:\n $ pachca bots update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Имя бота","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"nickname":{"description":"Никнейм бота. Должен заканчиваться на `_bot`.","name":"nickname","hasDynamicHelp":false,"multiple":false,"type":"option"},"outgoing-url":{"description":"URL исходящего вебхука","name":"outgoing-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"events":{"description":"События, на которые подписан бот","name":"events","hasDynamicHelp":false,"multiple":false,"type":"option"},"trigger-on":{"description":"Условие срабатывания исходящего вебхука","name":"trigger-on","hasDynamicHelp":false,"multiple":false,"type":"option"},"commands":{"description":"Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands","name":"commands","hasDynamicHelp":false,"multiple":false,"type":"option"},"scopes":{"description":"Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.","name":"scopes","hasDynamicHelp":false,"multiple":false,"type":"option"},"template":{"description":"Шаблон форматирования входящего вебхука","name":"template","hasDynamicHelp":false,"multiple":false,"type":"option"},"template-engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","name":"template-engine","hasDynamicHelp":false,"multiple":false,"type":"option"},"challenge-key":{"description":"Название поля проверки для верификации входящего вебхука","name":"challenge-key","hasDynamicHelp":false,"multiple":false,"type":"option"},"link-preview-enabled":{"description":"Показывать превью ссылок в сообщениях входящего вебхука","name":"link-preview-enabled","allowNo":true,"type":"boolean"},"ignore-self-messages":{"description":"Игнорировать входящие сообщения, отправленные самим ботом","name":"ignore-self-messages","allowNo":true,"type":"boolean"},"events-history-enabled":{"description":"Сохранять историю событий бота для последующего получения через метод истории событий","name":"events-history-enabled","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:write","apiMethod":"PUT","apiPath":"/bots/{id}","defaultColumns":["id","webhook"],"isESM":true,"relativePath":["dist","commands","bots","update.js"]},"bots:update-webhook":{"aliases":[],"args":{},"description":"Саморегистрация вебхука бота","examples":["Обновить Webhook URL бота:\n $ pachca bots update-webhook"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"outgoing-url":{"description":"URL исходящего вебхука. Пустая строка отключает вебхук.","name":"outgoing-url","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:update-webhook","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bot_self:webhook:write","apiMethod":"PUT","apiPath":"/bot/webhook","defaultColumns":["id","webhook"],"requiredFlags":["outgoing-url"],"isESM":true,"relativePath":["dist","commands","bots","update-webhook.js"]},"changelog":{"aliases":[],"args":{},"description":"История изменений CLI","examples":["<%= config.bin %> changelog","<%= config.bin %> changelog -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"changelog","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","changelog.js"]},"chats:archive":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (pachca chats list)","name":"id","required":true}},"description":"Архивация чата","examples":["Архивация и управление чатом:\n $ pachca chats archive","Найти и заархивировать неактивные чаты:\n $ pachca chats archive"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:archive","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:archive","apiMethod":"PUT","apiPath":"/chats/{id}/archive","isESM":true,"relativePath":["dist","commands","chats","archive.js"]},"chats:create":{"aliases":[],"args":{},"description":"Новый чат","examples":["Создать канал и пригласить участников:\n $ pachca chats create","Создать проектную беседу из шаблона:\n $ pachca chats create","Найти активные чаты за период:\n $ pachca chats list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Название","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"member-ids":{"description":"Массив идентификаторов пользователей, которые станут участниками","name":"member-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"group-tag-ids":{"description":"Массив идентификаторов тегов, которые станут участниками","name":"group-tag-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"channel":{"description":"Является каналом","name":"channel","allowNo":true,"type":"boolean"},"public":{"description":"Открытый доступ","name":"public","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:create","apiMethod":"POST","apiPath":"/chats","defaultColumns":["id","name","created_at","owner_id","channel"],"requiredFlags":["name"],"isESM":true,"relativePath":["dist","commands","chats","create.js"]},"chats:download-export":{"aliases":[],"args":{"id":{"description":"Идентификатор экспорта (pachca chats list)","name":"id","required":true}},"description":"Скачать архив экспорта","examples":["Экспорт истории чата:\n $ pachca chats download-export"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"save":{"description":"Путь для сохранения файла","name":"save","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":["common:get-exports"],"id":"chats:download-export","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_exports:read","plan":"corporation","apiMethod":"GET","apiPath":"/chats/exports/{id}","isESM":true,"relativePath":["dist","commands","chats","download-export.js"]},"chats:get":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (pachca chats list)","name":"id","required":true}},"description":"Информация о чате","examples":["Переименовать или обновить чат:\n $ pachca chats update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:read","apiMethod":"GET","apiPath":"/chats/{id}","defaultColumns":["id","name","created_at","owner_id","channel"],"isESM":true,"relativePath":["dist","commands","chats","get.js"]},"chats:list":{"aliases":[],"args":{},"description":"Список чатов","examples":["Создать канал и пригласить участников:\n $ pachca chats create","Создать проектную беседу из шаблона:\n $ pachca chats create","Найти активные чаты за период:\n $ pachca chats list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"sort":{"description":"Поле сортировки","name":"sort","default":"id","hasDynamicHelp":false,"multiple":false,"options":["id","last_message_at"],"type":"option"},"order":{"description":"Направление сортировки","name":"order","default":"desc","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"availability":{"description":"Параметр, который отвечает за доступность и выборку чатов для пользователя","name":"availability","default":"is_member","hasDynamicHelp":false,"multiple":false,"options":["is_member","public"],"type":"option"},"last-message-at-after":{"description":"Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","name":"last-message-at-after","hasDynamicHelp":false,"multiple":false,"type":"option"},"last-message-at-before":{"description":"Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","name":"last-message-at-before","hasDynamicHelp":false,"multiple":false,"type":"option"},"personal":{"description":"Фильтрация по личным и групповым чатам. Если параметр не указан, возвращаются любые чаты.","name":"personal","allowNo":true,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:read","apiMethod":"GET","apiPath":"/chats","defaultColumns":["id","name","created_at","owner_id","channel"],"isESM":true,"relativePath":["dist","commands","chats","list.js"]},"chats:request-export":{"aliases":[],"args":{},"description":"Экспорт сообщений","examples":["Экспорт истории чата:\n $ pachca chats request-export"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"start-at":{"description":"Дата начала для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD","name":"start-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"end-at":{"description":"Дата окончания для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD","name":"end-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"webhook-url":{"description":"Адрес, на который будет отправлен вебхук по завершению экспорта","name":"webhook-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"chat-ids":{"description":"Массив идентификаторов чатов. Указывается, если нужно получить сообщения только некоторых чатов.","name":"chat-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"skip-chats-file":{"description":"Пропуск формирования файла со списком чатов (chats.json)","name":"skip-chats-file","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":["common:request-export"],"id":"chats:request-export","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_exports:write","plan":"corporation","apiMethod":"POST","apiPath":"/chats/exports","requiredFlags":["start-at","end-at","webhook-url"],"isESM":true,"relativePath":["dist","commands","chats","request-export.js"]},"chats:unarchive":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (pachca chats list)","name":"id","required":true}},"description":"Разархивация чата","examples":["Архивация и управление чатом:\n $ pachca chats unarchive"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:unarchive","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:archive","apiMethod":"PUT","apiPath":"/chats/{id}/unarchive","isESM":true,"relativePath":["dist","commands","chats","unarchive.js"]},"chats:update":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (pachca chats list)","name":"id","required":true}},"description":"Редактирование чата","examples":["Переименовать или обновить чат:\n $ pachca chats update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Название","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"public":{"description":"Открытый доступ","name":"public","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:update","apiMethod":"PUT","apiPath":"/chats/{id}","defaultColumns":["id","name","created_at","owner_id","channel"],"isESM":true,"relativePath":["dist","commands","chats","update.js"]},"commands":{"aliases":[],"args":{},"description":"Список всех команд","examples":["<%= config.bin %> commands","<%= config.bin %> commands --available","<%= config.bin %> commands --available -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"available":{"description":"Показать только команды, доступные текущему токену","name":"available","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"commands","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","commands.js"]},"config:get":{"aliases":[],"args":{"key":{"description":"Ключ настройки","name":"key","required":true}},"description":"Получение значения конфигурации","examples":["<%= config.bin %> config get defaults.output"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"config:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","config","get.js"]},"config:list":{"aliases":[],"args":{},"description":"Список всех настроек","examples":["<%= config.bin %> config list","<%= config.bin %> config list -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"config:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","config","list.js"]},"config:set":{"aliases":[],"args":{"key":{"description":"Ключ настройки","name":"key","required":true},"value":{"description":"Значение настройки","name":"value","required":true}},"description":"Установка значения конфигурации","examples":["<%= config.bin %> config set defaults.output json","<%= config.bin %> config set defaults.timeout 60"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"config:set","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","config","set.js"]},"custom-properties:list":{"aliases":[],"args":{},"description":"Список дополнительных полей","examples":["Получить кастомные поля профиля:\n $ pachca custom-properties list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"entity-type":{"description":"Тип сущности","name":"entity-type","hasDynamicHelp":false,"multiple":false,"options":["User","Task"],"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":["common:custom-properties"],"id":"custom-properties:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"custom_properties:read","apiMethod":"GET","apiPath":"/custom_properties","defaultColumns":["id","name","data_type"],"requiredFlags":["entity-type"],"isESM":true,"relativePath":["dist","commands","custom-properties","list.js"]},"doctor":{"aliases":[],"args":{},"description":"Диагностика окружения: Node.js, сеть, токен, конфигурация","examples":["<%= config.bin %> doctor","<%= config.bin %> doctor -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"doctor","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","doctor.js"]},"files:direct-url":{"aliases":[],"args":{},"description":"Загрузка файла","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"direct-url":{"description":"URL для отправки запроса (получается из ответа POST /uploads)","name":"direct-url","required":true,"hasDynamicHelp":false,"multiple":false,"type":"option"},"content-disposition":{"description":"Параметр Content-Disposition, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"content-disposition","hasDynamicHelp":false,"multiple":false,"type":"option"},"acl":{"description":"Параметр acl, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"acl","hasDynamicHelp":false,"multiple":false,"type":"option"},"policy":{"description":"Параметр policy, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"policy","hasDynamicHelp":false,"multiple":false,"type":"option"},"x-amz-credential":{"description":"Параметр x-amz-credential, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"x-amz-credential","hasDynamicHelp":false,"multiple":false,"type":"option"},"x-amz-algorithm":{"description":"Параметр x-amz-algorithm, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"x-amz-algorithm","hasDynamicHelp":false,"multiple":false,"type":"option"},"x-amz-date":{"description":"Параметр x-amz-date, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"x-amz-date","hasDynamicHelp":false,"multiple":false,"type":"option"},"x-amz-signature":{"description":"Параметр x-amz-signature, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"x-amz-signature","hasDynamicHelp":false,"multiple":false,"type":"option"},"key":{"description":"Параметр key, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"key","hasDynamicHelp":false,"multiple":false,"type":"option"},"file":{"description":"Файл для загрузки","name":"file","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":["common:direct-url"],"id":"files:direct-url","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"apiMethod":"POST","apiPath":"/direct_url","requiredFlags":["content-disposition","acl","policy","x-amz-credential","x-amz-algorithm","x-amz-date","x-amz-signature","key"],"isESM":true,"relativePath":["dist","commands","files","direct-url.js"]},"files:uploads":{"aliases":[],"args":{},"description":"Получение подписи, ключа и других параметров","examples":["Изменить вложения сообщения:\n $ pachca files uploads"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":["common:uploads"],"id":"files:uploads","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"uploads:write","apiMethod":"POST","apiPath":"/uploads","defaultColumns":["Content-Disposition","acl","policy","x-amz-credential","x-amz-algorithm"],"isESM":true,"relativePath":["dist","commands","files","uploads.js"]},"group-tags:create":{"aliases":[],"args":{},"description":"Новый тег","examples":["Массовое создание сотрудников с тегами:\n $ pachca group-tags create","Получить всех сотрудников тега/департамента:\n $ pachca group-tags list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Название тега","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:write","apiMethod":"POST","apiPath":"/group_tags","defaultColumns":["id","name","users_count"],"requiredFlags":["name"],"isESM":true,"relativePath":["dist","commands","group-tags","create.js"]},"group-tags:delete":{"aliases":[],"args":{"id":{"description":"Идентификатор тега","name":"id","required":true}},"description":"Удаление тега","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:delete","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:write","apiMethod":"DELETE","apiPath":"/group_tags/{id}","isESM":true,"relativePath":["dist","commands","group-tags","delete.js"]},"group-tags:get":{"aliases":[],"args":{"id":{"description":"Идентификатор тега","name":"id","required":true}},"description":"Информация о теге","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:read","apiMethod":"GET","apiPath":"/group_tags/{id}","defaultColumns":["id","name","users_count"],"isESM":true,"relativePath":["dist","commands","group-tags","get.js"]},"group-tags:list":{"aliases":[],"args":{},"description":"Список тегов сотрудников","examples":["Массовое создание сотрудников с тегами:\n $ pachca group-tags create","Получить всех сотрудников тега/департамента:\n $ pachca group-tags list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"names":{"description":"Массив названий тегов, по которым вы хотите отфильтровать список (через запятую)","name":"names","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:read","apiMethod":"GET","apiPath":"/group_tags","defaultColumns":["id","name","users_count"],"isESM":true,"relativePath":["dist","commands","group-tags","list.js"]},"group-tags:list-users":{"aliases":[],"args":{"id":{"description":"Идентификатор тега","name":"id","required":true}},"description":"Список сотрудников тега","examples":["Получить всех сотрудников тега/департамента:\n $ pachca group-tags list-users"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:list-users","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:read","apiMethod":"GET","apiPath":"/group_tags/{id}/users","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","group-tags","list-users.js"]},"group-tags:update":{"aliases":[],"args":{"id":{"description":"Идентификатор тега","name":"id","required":true}},"description":"Редактирование тега","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Название тега","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:write","apiMethod":"PUT","apiPath":"/group_tags/{id}","defaultColumns":["id","name","users_count"],"requiredFlags":["name"],"isESM":true,"relativePath":["dist","commands","group-tags","update.js"]},"guide":{"aliases":[],"args":{"query":{"description":"Поисковый запрос","name":"query","required":false}},"description":"Поиск сценариев использования","examples":["<%= config.bin %> guide \"отправить файл\"","<%= config.bin %> guide \"создать бота\"","<%= config.bin %> guide"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"guide","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","guide.js"]},"introspect":{"aliases":[],"args":{"command":{"description":"Имя команды (например, \"messages create\")","name":"command","required":false}},"description":"Метаданные команды в машиночитаемом формате","examples":["<%= config.bin %> introspect messages create","<%= config.bin %> introspect"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"introspect","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":false,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","introspect.js"]},"members:add":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (беседа, канал или чат треда)","name":"id","required":true}},"description":"Добавление пользователей","examples":["Подписаться на тред сообщения:\n $ pachca members add","Упомянуть пользователя:\n $ pachca members list","Создать канал и пригласить участников:\n $ pachca members add"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"member-ids":{"description":"Массив идентификаторов пользователей, которые станут участниками","name":"member-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"silent":{"description":"Не создавать в чате системное сообщение о добавлении участника","name":"silent","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:add","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"POST","apiPath":"/chats/{id}/members","requiredFlags":["member-ids"],"isESM":true,"relativePath":["dist","commands","members","add.js"]},"members:add-group-tags":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true}},"description":"Добавление тегов","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"group-tag-ids":{"description":"Массив идентификаторов тегов, которые станут участниками","name":"group-tag-ids","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:add-group-tags","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"POST","apiPath":"/chats/{id}/group_tags","requiredFlags":["group-tag-ids"],"isESM":true,"relativePath":["dist","commands","members","add-group-tags.js"]},"members:leave":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true}},"description":"Выход из беседы или канала","examples":["Архивация и управление чатом:\n $ pachca members leave"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:leave","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:leave","apiMethod":"DELETE","apiPath":"/chats/{id}/leave","isESM":true,"relativePath":["dist","commands","members","leave.js"]},"members:list":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true}},"description":"Список участников чата","examples":["Подписаться на тред сообщения:\n $ pachca members add","Упомянуть пользователя:\n $ pachca members list","Создать канал и пригласить участников:\n $ pachca members add"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"role":{"description":"Роль в чате","name":"role","default":"all","hasDynamicHelp":false,"multiple":false,"options":["all","owner","admin","editor","member"],"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:read","apiMethod":"GET","apiPath":"/chats/{id}/members","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","members","list.js"]},"members:remove":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true},"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Исключение пользователя","examples":["Архивация и управление чатом:\n $ pachca members update","Архивация и управление чатом:\n $ pachca members remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:remove","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"DELETE","apiPath":"/chats/{id}/members/{user_id}","isESM":true,"relativePath":["dist","commands","members","remove.js"]},"members:remove-group-tag":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true},"tag_id":{"description":"Идентификатор тега (pachca tags list)","name":"tag_id","required":true}},"description":"Исключение тега","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:remove-group-tag","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"DELETE","apiPath":"/chats/{id}/group_tags/{tag_id}","isESM":true,"relativePath":["dist","commands","members","remove-group-tag.js"]},"members:update":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true},"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Редактирование роли","examples":["Архивация и управление чатом:\n $ pachca members update","Архивация и управление чатом:\n $ pachca members remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"role":{"description":"Роль","name":"role","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"PUT","apiPath":"/chats/{id}/members/{user_id}","requiredFlags":["role"],"isESM":true,"relativePath":["dist","commands","members","update.js"]},"messages:create":{"aliases":[],"args":{},"description":"Новое сообщение","examples":["Найти чат по имени и отправить сообщение:\n $ pachca messages create","Отправить сообщение в канал или беседу (если chat_id известен):\n $ pachca messages create","Отправить личное сообщение пользователю:\n $ pachca messages create"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"entity-type":{"description":"Тип сущности","name":"entity-type","hasDynamicHelp":false,"multiple":false,"type":"option"},"entity-id":{"description":"Идентификатор сущности (pachca chats list | pachca users list)","name":"entity-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"content":{"description":"Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).","name":"content","hasDynamicHelp":false,"multiple":false,"type":"option"},"files":{"description":"Прикрепляемые файлы","name":"files","hasDynamicHelp":false,"multiple":false,"type":"option"},"buttons":{"description":"Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке.","name":"buttons","hasDynamicHelp":false,"multiple":false,"type":"option"},"parent-message-id":{"description":"Идентификатор сообщения. Указывается в случае, если вы отправляете ответ на другое сообщение.","name":"parent-message-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"display-avatar-url":{"description":"Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота. (макс. 255 символов)","name":"display-avatar-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"display-name":{"description":"Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота. (макс. 255 символов)","name":"display-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"skip-invite-mentions":{"description":"Пропуск добавления упоминаемых пользователей в тред. Работает только при отправке сообщения в тред.","name":"skip-invite-mentions","allowNo":true,"type":"boolean"},"link-preview":{"description":"Отображение предпросмотра первой найденной ссылки в тексте сообщения","name":"link-preview","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:create","apiMethod":"POST","apiPath":"/messages","defaultColumns":["id","content","created_at","entity_type","entity_id"],"requiredFlags":["entity-id","content"],"isESM":true,"relativePath":["dist","commands","messages","create.js"]},"messages:delete":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Удаление сообщения","examples":["Получить вложения из сообщения:\n $ pachca messages get","Отредактировать сообщение:\n $ pachca messages update","Изменить вложения сообщения:\n $ pachca messages get"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:delete","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:delete","apiMethod":"DELETE","apiPath":"/messages/{id}","isESM":true,"relativePath":["dist","commands","messages","delete.js"]},"messages:get":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Информация о сообщении","examples":["Получить вложения из сообщения:\n $ pachca messages get","Отредактировать сообщение:\n $ pachca messages update","Изменить вложения сообщения:\n $ pachca messages get"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:read","apiMethod":"GET","apiPath":"/messages/{id}","defaultColumns":["id","content","created_at","entity_type","entity_id"],"isESM":true,"relativePath":["dist","commands","messages","get.js"]},"messages:list":{"aliases":[],"args":{"chat_id":{"description":"Идентификатор чата (беседа, канал, диалог или чат треда)","name":"chat_id","required":false}},"description":"Список сообщений чата","examples":["Найти чат по имени и отправить сообщение:\n $ pachca messages create","Отправить сообщение в канал или беседу (если chat_id известен):\n $ pachca messages create","Отправить личное сообщение пользователю:\n $ pachca messages create"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"chat-id":{"description":"Идентификатор чата (беседа, канал, диалог или чат треда)","name":"chat-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"sort":{"description":"Поле сортировки","name":"sort","default":"id","hasDynamicHelp":false,"multiple":false,"options":["id"],"type":"option"},"order":{"description":"Направление сортировки","name":"order","default":"desc","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:read","apiMethod":"GET","apiPath":"/messages","defaultColumns":["id","content","created_at","entity_type","entity_id"],"requiredFlags":["chat-id"],"isESM":true,"relativePath":["dist","commands","messages","list.js"]},"messages:pin":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Закрепление сообщения","examples":["Закрепить/открепить сообщение:\n $ pachca messages pin","Закрепить/открепить сообщение:\n $ pachca messages unpin"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:pin","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"pins:write","apiMethod":"POST","apiPath":"/messages/{id}/pin","isESM":true,"relativePath":["dist","commands","messages","pin.js"]},"messages:unfurl":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Unfurl (разворачивание ссылок)","examples":["Разворачивание ссылок (unfurling):\n $ pachca messages unfurl"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"link-previews":{"description":"`JSON` карта предпросмотров ссылок, где каждый ключ — `URL`, который был получен в исходящем вебхуке о новом сообщении.","name":"link-previews","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":["link-previews:add"],"id":"messages:unfurl","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"link_previews:write","apiMethod":"POST","apiPath":"/messages/{id}/link_previews","requiredFlags":["link-previews"],"isESM":true,"relativePath":["dist","commands","messages","unfurl.js"]},"messages:unpin":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Открепление сообщения","examples":["Закрепить/открепить сообщение:\n $ pachca messages pin","Закрепить/открепить сообщение:\n $ pachca messages unpin"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:unpin","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"pins:write","apiMethod":"DELETE","apiPath":"/messages/{id}/pin","isESM":true,"relativePath":["dist","commands","messages","unpin.js"]},"messages:update":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Редактирование сообщения","examples":["Получить вложения из сообщения:\n $ pachca messages get","Отредактировать сообщение:\n $ pachca messages update","Изменить вложения сообщения:\n $ pachca messages get"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"content":{"description":"Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).","name":"content","hasDynamicHelp":false,"multiple":false,"type":"option"},"files":{"description":"Прикрепляемые файлы","name":"files","hasDynamicHelp":false,"multiple":false,"type":"option"},"buttons":{"description":"Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке. Для удаления кнопок пришлите пустой массив.","name":"buttons","hasDynamicHelp":false,"multiple":false,"type":"option"},"display-avatar-url":{"description":"Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","name":"display-avatar-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"display-name":{"description":"Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","name":"display-name","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:update","apiMethod":"PUT","apiPath":"/messages/{id}","defaultColumns":["id","content","created_at","entity_type","entity_id"],"isESM":true,"relativePath":["dist","commands","messages","update.js"]},"oauth:token-info":{"aliases":[],"args":{},"description":"Информация о токене","examples":["Проверить свой токен:\n $ pachca oauth token-info"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":["profile:get-info"],"id":"oauth:token-info","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"apiMethod":"GET","apiPath":"/oauth/token/info","defaultColumns":["id","name","created_at","token","user_id"],"isESM":true,"relativePath":["dist","commands","oauth","token-info.js"]},"profile:delete-avatar":{"aliases":[],"args":{},"description":"Удаление своего аватара","examples":["Загрузить аватар профиля:\n $ pachca profile update-avatar","Удалить аватар профиля:\n $ pachca profile delete-avatar"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:delete-avatar","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_avatar:write","apiMethod":"DELETE","apiPath":"/profile/avatar","isESM":true,"relativePath":["dist","commands","profile","delete-avatar.js"]},"profile:delete-status":{"aliases":[],"args":{},"description":"Удаление своего статуса","examples":["Установить статус:\n $ pachca profile update-status","Сбросить статус:\n $ pachca profile delete-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:delete-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_status:write","apiMethod":"DELETE","apiPath":"/profile/status","isESM":true,"relativePath":["dist","commands","profile","delete-status.js"]},"profile:get":{"aliases":[],"args":{},"description":"Свой профиль","examples":["Получить свой профиль:\n $ pachca profile get","Получить кастомные поля профиля:\n $ pachca profile get"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile:read","apiMethod":"GET","apiPath":"/profile","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","profile","get.js"]},"profile:get-status":{"aliases":[],"args":{},"description":"Свой статус","examples":["Установить статус:\n $ pachca profile update-status","Сбросить статус:\n $ pachca profile delete-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:get-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_status:read","apiMethod":"GET","apiPath":"/profile/status","defaultColumns":["title","emoji","expires_at","is_away"],"isESM":true,"relativePath":["dist","commands","profile","get-status.js"]},"profile:update-avatar":{"aliases":[],"args":{},"description":"Загрузка своего аватара","examples":["Загрузить аватар профиля:\n $ pachca profile update-avatar","Удалить аватар профиля:\n $ pachca profile delete-avatar"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"file":{"description":"Файл изображения для аватара","name":"file","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:update-avatar","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_avatar:write","apiMethod":"PUT","apiPath":"/profile/avatar","defaultColumns":["image_url"],"isESM":true,"relativePath":["dist","commands","profile","update-avatar.js"]},"profile:update-status":{"aliases":[],"args":{},"description":"Новый свой статус","examples":["Установить статус:\n $ pachca profile update-status","Сбросить статус:\n $ pachca profile delete-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"emoji":{"description":"Emoji символ статуса","name":"emoji","hasDynamicHelp":false,"multiple":false,"type":"option"},"title":{"description":"Текст статуса","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"expires-at":{"description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","name":"expires-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"is-away":{"description":"Режим «Нет на месте»","name":"is-away","allowNo":true,"type":"boolean"},"away-message":{"description":"Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях. (макс. 1024 символов)","name":"away-message","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:update-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_status:write","apiMethod":"PUT","apiPath":"/profile/status","defaultColumns":["title","emoji","expires_at","is_away"],"requiredFlags":["emoji","title"],"isESM":true,"relativePath":["dist","commands","profile","update-status.js"]},"reactions:add":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Добавление реакции","examples":["Добавить реакцию на сообщение:\n $ pachca reactions add","Добавить реакцию на сообщение:\n $ pachca reactions remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"code":{"description":"Emoji символ реакции","name":"code","hasDynamicHelp":false,"multiple":false,"type":"option"},"name":{"description":"Текстовое имя эмодзи (используется для кастомных эмодзи)","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"reactions:add","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"reactions:write","apiMethod":"POST","apiPath":"/messages/{id}/reactions","defaultColumns":["name","created_at","user_id","code"],"requiredFlags":["code"],"isESM":true,"relativePath":["dist","commands","reactions","add.js"]},"reactions:list":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Список реакций","examples":["Добавить реакцию на сообщение:\n $ pachca reactions add","Добавить реакцию на сообщение:\n $ pachca reactions remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"reactions:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"reactions:read","apiMethod":"GET","apiPath":"/messages/{id}/reactions","defaultColumns":["name","created_at","user_id","code"],"isESM":true,"relativePath":["dist","commands","reactions","list.js"]},"reactions:remove":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Удаление реакции","examples":["Добавить реакцию на сообщение:\n $ pachca reactions add","Добавить реакцию на сообщение:\n $ pachca reactions remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"code":{"description":"Emoji символ реакции","name":"code","hasDynamicHelp":false,"multiple":false,"type":"option"},"name":{"description":"Текстовое имя эмодзи (используется для кастомных эмодзи)","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"reactions:remove","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"reactions:write","apiMethod":"DELETE","apiPath":"/messages/{id}/reactions","requiredFlags":["code"],"isESM":true,"relativePath":["dist","commands","reactions","remove.js"]},"read-member:list-readers":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Список прочитавших сообщение","examples":["Проверить, кто прочитал сообщение:\n $ pachca read-member list-readers"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"read-member:list-readers","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:read","apiMethod":"GET","apiPath":"/messages/{id}/read_member_ids","isESM":true,"relativePath":["dist","commands","read-member","list-readers.js"]},"search:list-chats":{"aliases":[],"args":{},"description":"Поиск чатов","examples":["Найти чат по имени и отправить сообщение:\n $ pachca search list-chats","Найти чат по названию:\n $ pachca search list-chats"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"query":{"description":"Текст поискового запроса","name":"query","hasDynamicHelp":false,"multiple":false,"type":"option"},"order":{"description":"Направление сортировки","name":"order","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"created-from":{"description":"Фильтр по дате создания (от)","name":"created-from","hasDynamicHelp":false,"multiple":false,"type":"option"},"created-to":{"description":"Фильтр по дате создания (до)","name":"created-to","hasDynamicHelp":false,"multiple":false,"type":"option"},"active":{"description":"Фильтр по активности чата","name":"active","allowNo":true,"type":"boolean"},"chat-subtype":{"description":"Фильтр по типу чата","name":"chat-subtype","hasDynamicHelp":false,"multiple":false,"options":["discussion","thread"],"type":"option"},"personal":{"description":"Фильтр по личным чатам","name":"personal","allowNo":true,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"search:list-chats","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"search:chats","apiMethod":"GET","apiPath":"/search/chats","defaultColumns":["id","name","created_at","owner_id","channel"],"isESM":true,"relativePath":["dist","commands","search","list-chats.js"]},"search:list-messages":{"aliases":[],"args":{},"description":"Поиск сообщений","examples":["Найти сообщение по тексту:\n $ pachca search list-messages"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"query":{"description":"Текст поискового запроса","name":"query","hasDynamicHelp":false,"multiple":false,"type":"option"},"order":{"description":"Направление сортировки","name":"order","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"sort":{"description":"Сортировка результатов","name":"sort","default":"created_at","hasDynamicHelp":false,"multiple":false,"options":["created_at","relevance"],"type":"option"},"created-from":{"description":"Фильтр по дате создания (от)","name":"created-from","hasDynamicHelp":false,"multiple":false,"type":"option"},"created-to":{"description":"Фильтр по дате создания (до)","name":"created-to","hasDynamicHelp":false,"multiple":false,"type":"option"},"chat-ids":{"description":"Фильтр по ID чатов (через запятую)","name":"chat-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"user-ids":{"description":"Фильтр по ID авторов сообщений (через запятую)","name":"user-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"active":{"description":"Фильтр по активности чата","name":"active","allowNo":true,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"search:list-messages","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"search:messages","apiMethod":"GET","apiPath":"/search/messages","defaultColumns":["id","content","created_at","entity_type","entity_id"],"isESM":true,"relativePath":["dist","commands","search","list-messages.js"]},"search:list-users":{"aliases":[],"args":{},"description":"Поиск сотрудников","examples":["Отправить личное сообщение пользователю:\n $ pachca search list-users","Упомянуть пользователя:\n $ pachca search list-users","Найти сотрудника по имени:\n $ pachca search list-users"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"query":{"description":"Текст поискового запроса","name":"query","hasDynamicHelp":false,"multiple":false,"type":"option"},"sort":{"description":"Сортировка результатов","name":"sort","hasDynamicHelp":false,"multiple":false,"options":["by_score","alphabetical"],"type":"option"},"order":{"description":"Направление сортировки","name":"order","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"created-from":{"description":"Фильтр по дате создания (от)","name":"created-from","hasDynamicHelp":false,"multiple":false,"type":"option"},"created-to":{"description":"Фильтр по дате создания (до)","name":"created-to","hasDynamicHelp":false,"multiple":false,"type":"option"},"company-roles":{"description":"Фильтр по ролям сотрудников (через запятую)","name":"company-roles","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"search:list-users","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"search:users","apiMethod":"GET","apiPath":"/search/users","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","search","list-users.js"]},"security:list":{"aliases":[],"args":{},"description":"Журнал аудита событий","examples":["Получить журнал аудита событий:\n $ pachca security list","Мониторинг подозрительных входов:\n $ pachca security list","Экспорт логов за период:\n $ pachca security list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"start-time":{"description":"Начальная метка времени (включительно)","name":"start-time","hasDynamicHelp":false,"multiple":false,"type":"option"},"end-time":{"description":"Конечная метка времени (исключительно)","name":"end-time","hasDynamicHelp":false,"multiple":false,"type":"option"},"event-key":{"description":"Фильтр по конкретному типу события","name":"event-key","hasDynamicHelp":false,"multiple":false,"options":["user_login","user_logout","user_2fa_fail","user_2fa_success","user_created","user_deleted","user_role_changed","user_updated","tag_created","tag_deleted","user_added_to_tag","user_removed_from_tag","chat_created","chat_renamed","chat_permission_changed","user_chat_join","user_chat_leave","tag_added_to_chat","tag_removed_from_chat","message_updated","message_deleted","message_created","reaction_created","reaction_deleted","thread_created","access_token_created","access_token_updated","access_token_destroy","kms_encrypt","kms_decrypt","audit_events_accessed","dlp_violation_detected","search_users_api","search_chats_api","search_messages_api","bot_scopes_updated","bot_webhook_settings_updated","bot_token_recreated"],"type":"option"},"actor-id":{"description":"Идентификатор пользователя, выполнившего действие","name":"actor-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"actor-type":{"description":"Тип актора","name":"actor-type","hasDynamicHelp":false,"multiple":false,"type":"option"},"entity-id":{"description":"Идентификатор затронутой сущности","name":"entity-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"entity-type":{"description":"Тип сущности","name":"entity-type","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"security:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"audit_events:read","plan":"corporation","apiMethod":"GET","apiPath":"/audit_events","defaultColumns":["id","created_at","event_key","entity_id","entity_type"],"isESM":true,"relativePath":["dist","commands","security","list.js"]},"tasks:create":{"aliases":[],"args":{},"description":"Новое напоминание","examples":["Форма заявки/запроса:\n $ pachca tasks create","Создать напоминание:\n $ pachca tasks create","Получить список предстоящих задач:\n $ pachca tasks list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"kind":{"description":"Тип","name":"kind","hasDynamicHelp":false,"multiple":false,"type":"option"},"content":{"description":"Описание (по умолчанию — название типа)","name":"content","hasDynamicHelp":false,"multiple":false,"type":"option"},"due-at":{"description":"Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).","name":"due-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"priority":{"description":"Приоритет: 1, 2 (важно) или 3 (очень важно).","name":"priority","hasDynamicHelp":false,"multiple":false,"type":"option"},"performer-ids":{"description":"Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы)","name":"performer-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"chat-id":{"description":"Идентификатор чата, к которому привязывается напоминание (pachca chats list)","name":"chat-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"all-day":{"description":"Напоминание на весь день (без указания времени)","name":"all-day","allowNo":true,"type":"boolean"},"custom-properties":{"description":"Задаваемые дополнительные поля","name":"custom-properties","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:create","apiMethod":"POST","apiPath":"/tasks","defaultColumns":["id","content","created_at","kind","due_at"],"requiredFlags":["kind"],"isESM":true,"relativePath":["dist","commands","tasks","create.js"]},"tasks:delete":{"aliases":[],"args":{"id":{"description":"Идентификатор напоминания (pachca tasks list)","name":"id","required":true}},"description":"Удаление напоминания","examples":["Получить задачу по ID:\n $ pachca tasks get","Отметить задачу выполненной:\n $ pachca tasks update","Обновить задачу (перенести срок, сменить ответственных):\n $ pachca tasks update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:delete","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:delete","apiMethod":"DELETE","apiPath":"/tasks/{id}","isESM":true,"relativePath":["dist","commands","tasks","delete.js"]},"tasks:get":{"aliases":[],"args":{"id":{"description":"Идентификатор напоминания (pachca tasks list)","name":"id","required":true}},"description":"Информация о напоминании","examples":["Получить задачу по ID:\n $ pachca tasks get","Отметить задачу выполненной:\n $ pachca tasks update","Обновить задачу (перенести срок, сменить ответственных):\n $ pachca tasks update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:read","apiMethod":"GET","apiPath":"/tasks/{id}","defaultColumns":["id","content","created_at","kind","due_at"],"isESM":true,"relativePath":["dist","commands","tasks","get.js"]},"tasks:list":{"aliases":[],"args":{},"description":"Список напоминаний","examples":["Форма заявки/запроса:\n $ pachca tasks create","Создать напоминание:\n $ pachca tasks create","Получить список предстоящих задач:\n $ pachca tasks list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:read","apiMethod":"GET","apiPath":"/tasks","defaultColumns":["id","content","created_at","kind","due_at"],"isESM":true,"relativePath":["dist","commands","tasks","list.js"]},"tasks:update":{"aliases":[],"args":{"id":{"description":"Идентификатор напоминания (pachca tasks list)","name":"id","required":true}},"description":"Редактирование напоминания","examples":["Получить задачу по ID:\n $ pachca tasks get","Отметить задачу выполненной:\n $ pachca tasks update","Обновить задачу (перенести срок, сменить ответственных):\n $ pachca tasks update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"kind":{"description":"Тип","name":"kind","hasDynamicHelp":false,"multiple":false,"type":"option"},"content":{"description":"Описание","name":"content","hasDynamicHelp":false,"multiple":false,"type":"option"},"due-at":{"description":"Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).","name":"due-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"priority":{"description":"Приоритет: 1, 2 (важно) или 3 (очень важно).","name":"priority","hasDynamicHelp":false,"multiple":false,"type":"option"},"performer-ids":{"description":"Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные»","name":"performer-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"status":{"description":"Статус","name":"status","hasDynamicHelp":false,"multiple":false,"type":"option"},"all-day":{"description":"Напоминание на весь день (без указания времени)","name":"all-day","allowNo":true,"type":"boolean"},"done-at":{"description":"Дата и время выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","name":"done-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"custom-properties":{"description":"Задаваемые дополнительные поля","name":"custom-properties","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:update","apiMethod":"PUT","apiPath":"/tasks/{id}","defaultColumns":["id","content","created_at","kind","due_at"],"isESM":true,"relativePath":["dist","commands","tasks","update.js"]},"threads:add":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Новый тред","examples":["Ответить в тред (комментарий к сообщению):\n $ pachca thread add","Подписаться на тред сообщения:\n $ pachca thread add"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"threads:add","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"threads:create","apiMethod":"POST","apiPath":"/messages/{id}/thread","defaultColumns":["id","chat_id","message_id","message_chat_id","updated_at"],"isESM":true,"relativePath":["dist","commands","threads","add.js"]},"threads:get":{"aliases":[],"args":{"id":{"description":"Идентификатор треда","name":"id","required":true}},"description":"Информация о треде","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"threads:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"threads:read","apiMethod":"GET","apiPath":"/threads/{id}","defaultColumns":["id","chat_id","message_id","message_chat_id","updated_at"],"isESM":true,"relativePath":["dist","commands","threads","get.js"]},"threads:list":{"aliases":[],"args":{},"description":"Список тредов","examples":["Получить список активных тредов за период:\n $ pachca threads list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"last-message-at-after":{"description":"Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","name":"last-message-at-after","hasDynamicHelp":false,"multiple":false,"type":"option"},"last-message-at-before":{"description":"Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","name":"last-message-at-before","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"threads:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"threads:read","apiMethod":"GET","apiPath":"/threads","defaultColumns":["id","chat_id","message_id","message_chat_id","updated_at"],"isESM":true,"relativePath":["dist","commands","threads","list.js"]},"upgrade":{"aliases":[],"args":{},"description":"Обновить CLI до последней версии","examples":["<%= config.bin %> upgrade"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"upgrade","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","upgrade.js"]},"upload":{"aliases":[],"args":{"file":{"description":"Путь к файлу или - для stdin","name":"file","required":true}},"description":"Загрузить файл (получает подпись и загружает автоматически)","examples":["<%= config.bin %> upload photo.jpg","cat data.csv | <%= config.bin %> upload -"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"upload","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"uploads:write","isESM":true,"relativePath":["dist","commands","upload.js"]},"users:create":{"aliases":[],"args":{},"description":"Новый сотрудник","examples":["Проверить, кто прочитал сообщение:\n $ pachca users list","Разослать уведомление нескольким пользователям:\n $ pachca users list","Массовое создание сотрудников с тегами:\n $ pachca users create"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"first-name":{"description":"Имя","name":"first-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"last-name":{"description":"Фамилия","name":"last-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"email":{"description":"Электронная почта","name":"email","hasDynamicHelp":false,"multiple":false,"type":"option"},"phone-number":{"description":"Телефон","name":"phone-number","hasDynamicHelp":false,"multiple":false,"type":"option"},"nickname":{"description":"Имя пользователя","name":"nickname","hasDynamicHelp":false,"multiple":false,"type":"option"},"department":{"description":"Департамент","name":"department","hasDynamicHelp":false,"multiple":false,"type":"option"},"title":{"description":"Должность","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"role":{"description":"Уровень доступа","name":"role","hasDynamicHelp":false,"multiple":false,"type":"option"},"suspended":{"description":"Деактивация пользователя","name":"suspended","allowNo":true,"type":"boolean"},"list-tags":{"description":"Массив тегов, привязываемых к сотруднику","name":"list-tags","hasDynamicHelp":false,"multiple":false,"type":"option"},"chat-ids":{"description":"Идентификаторы чатов, в которые сотрудник будет добавлен сразу при создании. Для роли `guest` параметр обязателен и должен содержать ровно один активный чат.","name":"chat-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"custom-properties":{"description":"Задаваемые дополнительные поля","name":"custom-properties","hasDynamicHelp":false,"multiple":false,"type":"option"},"skip-email-notify":{"description":"Пропуск этапа отправки приглашения сотруднику. Сотруднику не будет отправлено письмо на электронную почту с приглашением создать аккаунт. Полезно при предварительном создании аккаунтов перед входом через SSO.","name":"skip-email-notify","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:create","apiMethod":"POST","apiPath":"/users","defaultColumns":["id","title","first_name","last_name","email"],"requiredFlags":["email"],"isESM":true,"relativePath":["dist","commands","users","create.js"]},"users:delete":{"aliases":[],"args":{"id":{"description":"Идентификатор пользователя (pachca users list)","name":"id","required":true}},"description":"Удаление сотрудника","examples":["Получить сотрудника по ID:\n $ pachca users get","Массовое создание сотрудников с тегами:\n $ pachca users update","Offboarding сотрудника:\n $ pachca users update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:delete","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:delete","apiMethod":"DELETE","apiPath":"/users/{id}","isESM":true,"relativePath":["dist","commands","users","delete.js"]},"users:get":{"aliases":[],"args":{"id":{"description":"Идентификатор пользователя (pachca users list)","name":"id","required":true}},"description":"Информация о сотруднике","examples":["Получить сотрудника по ID:\n $ pachca users get","Массовое создание сотрудников с тегами:\n $ pachca users update","Offboarding сотрудника:\n $ pachca users update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:read","apiMethod":"GET","apiPath":"/users/{id}","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","users","get.js"]},"users:get-status":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Статус сотрудника","examples":["Управление статусом сотрудника:\n $ pachca users get-status","Управление статусом сотрудника:\n $ pachca users update-status","Управление статусом сотрудника:\n $ pachca users remove-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:get-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_status:read","apiMethod":"GET","apiPath":"/users/{user_id}/status","defaultColumns":["title","emoji","expires_at","is_away"],"isESM":true,"relativePath":["dist","commands","users","get-status.js"]},"users:list":{"aliases":[],"args":{},"description":"Список сотрудников","examples":["Проверить, кто прочитал сообщение:\n $ pachca users list","Разослать уведомление нескольким пользователям:\n $ pachca users list","Массовое создание сотрудников с тегами:\n $ pachca users create"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"query":{"description":"Поисковая фраза для фильтрации результатов. Поиск работает по полям: `first_name` (имя), `last_name` (фамилия), `email` (электронная почта), `phone_number` (телефон) и `nickname` (никнейм).","name":"query","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:read","apiMethod":"GET","apiPath":"/users","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","users","list.js"]},"users:remove-avatar":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Удаление аватара сотрудника","examples":["Загрузить аватар сотрудника:\n $ pachca users update-avatar","Удалить аватар сотрудника:\n $ pachca users remove-avatar"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:remove-avatar","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_avatar:write","apiMethod":"DELETE","apiPath":"/users/{user_id}/avatar","isESM":true,"relativePath":["dist","commands","users","remove-avatar.js"]},"users:remove-status":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Удаление статуса сотрудника","examples":["Управление статусом сотрудника:\n $ pachca users get-status","Управление статусом сотрудника:\n $ pachca users update-status","Управление статусом сотрудника:\n $ pachca users remove-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:remove-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_status:write","apiMethod":"DELETE","apiPath":"/users/{user_id}/status","isESM":true,"relativePath":["dist","commands","users","remove-status.js"]},"users:update":{"aliases":[],"args":{"id":{"description":"Идентификатор пользователя (pachca users list)","name":"id","required":true}},"description":"Редактирование сотрудника","examples":["Получить сотрудника по ID:\n $ pachca users get","Массовое создание сотрудников с тегами:\n $ pachca users update","Offboarding сотрудника:\n $ pachca users update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"first-name":{"description":"Имя","name":"first-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"last-name":{"description":"Фамилия","name":"last-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"email":{"description":"Электронная почта","name":"email","hasDynamicHelp":false,"multiple":false,"type":"option"},"phone-number":{"description":"Телефон","name":"phone-number","hasDynamicHelp":false,"multiple":false,"type":"option"},"nickname":{"description":"Имя пользователя","name":"nickname","hasDynamicHelp":false,"multiple":false,"type":"option"},"department":{"description":"Департамент","name":"department","hasDynamicHelp":false,"multiple":false,"type":"option"},"title":{"description":"Должность","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"role":{"description":"Уровень доступа","name":"role","hasDynamicHelp":false,"multiple":false,"type":"option"},"suspended":{"description":"Деактивация пользователя","name":"suspended","allowNo":true,"type":"boolean"},"list-tags":{"description":"Массив тегов, привязываемых к сотруднику","name":"list-tags","hasDynamicHelp":false,"multiple":false,"type":"option"},"custom-properties":{"description":"Задаваемые дополнительные поля","name":"custom-properties","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:update","apiMethod":"PUT","apiPath":"/users/{id}","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","users","update.js"]},"users:update-avatar":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Загрузка аватара сотрудника","examples":["Загрузить аватар сотрудника:\n $ pachca users update-avatar","Удалить аватар сотрудника:\n $ pachca users remove-avatar"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"file":{"description":"Файл изображения для аватара","name":"file","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:update-avatar","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_avatar:write","apiMethod":"PUT","apiPath":"/users/{user_id}/avatar","defaultColumns":["image_url"],"isESM":true,"relativePath":["dist","commands","users","update-avatar.js"]},"users:update-status":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Новый статус сотрудника","examples":["Управление статусом сотрудника:\n $ pachca users get-status","Управление статусом сотрудника:\n $ pachca users update-status","Управление статусом сотрудника:\n $ pachca users remove-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"emoji":{"description":"Emoji символ статуса","name":"emoji","hasDynamicHelp":false,"multiple":false,"type":"option"},"title":{"description":"Текст статуса","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"expires-at":{"description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","name":"expires-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"is-away":{"description":"Режим «Нет на месте»","name":"is-away","allowNo":true,"type":"boolean"},"away-message":{"description":"Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях. (макс. 1024 символов)","name":"away-message","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:update-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_status:write","apiMethod":"PUT","apiPath":"/users/{user_id}/status","defaultColumns":["title","emoji","expires_at","is_away"],"requiredFlags":["emoji","title"],"isESM":true,"relativePath":["dist","commands","users","update-status.js"]},"version":{"aliases":[],"args":{},"description":"Версия CLI","examples":["<%= config.bin %> version"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"version","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","version.js"]},"views:open":{"aliases":[],"args":{},"description":"Открытие представления","examples":["Показать интерактивную форму пользователю:\n $ pachca views open","Опрос сотрудников через форму:\n $ pachca views open","Форма заявки/запроса:\n $ pachca views open"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"title":{"description":"Заголовок представления (макс. 24 символов)","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"close-text":{"description":"Текст кнопки закрытия представления. Отображается только в десктоп-вебе. В мобильных приложениях (iOS/Android) кнопка закрытия — это крестик в шапке, и заданный текст там не показывается. (макс. 24 символов)","name":"close-text","hasDynamicHelp":false,"multiple":false,"type":"option"},"submit-text":{"description":"Текст кнопки отправки формы (макс. 24 символов)","name":"submit-text","hasDynamicHelp":false,"multiple":false,"type":"option"},"blocks":{"description":"Массив блоков представления","name":"blocks","hasDynamicHelp":false,"multiple":false,"type":"option"},"type":{"description":"Способ открытия представления","name":"type","hasDynamicHelp":false,"multiple":false,"options":["modal"],"type":"option"},"trigger-id":{"description":"Уникальный идентификатор события (полученный, например, в исходящем вебхуке о нажатии кнопки)","name":"trigger-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"private-metadata":{"description":"Необязательная строка, которая будет отправлена в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для передачи в формате `JSON` какой то дополнительной информации вместе с заполненной пользователем формой. (макс. 3000 символов)","name":"private-metadata","hasDynamicHelp":false,"multiple":false,"type":"option"},"callback-id":{"description":"Необязательный идентификатор для распознавания этого представления, который будет отправлен в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для понимания, какую форму должен был заполнить пользователь. (макс. 255 символов)","name":"callback-id","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"views:open","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"views:write","apiMethod":"POST","apiPath":"/views/open","requiredFlags":["title","blocks","type","trigger-id"],"isESM":true,"relativePath":["dist","commands","views","open.js"]}},"version":"0.0.0"} \ No newline at end of file +{"commands":{"api":{"aliases":[],"args":{"method":{"description":"HTTP-метод (GET, POST, PUT, DELETE, PATCH)","name":"method","options":["GET","POST","PUT","DELETE","PATCH"],"required":true},"path":{"description":"Путь API (например, /messages)","name":"path","required":true}},"description":"Произвольный запрос к API. Список и справка: `api ls` (список эндпоинтов), `api <МЕТОД> <путь> --describe` / `--spec` / `--docs`","examples":["<%= config.bin %> api GET /messages --query chat_id=123","<%= config.bin %> api POST /messages -F message[chat_id]=12345 -f message[content]=\"Привет\"","<%= config.bin %> api POST /messages --input payload.json","<%= config.bin %> api POST /messages --data '{\"message\":{\"entity_id\":123,\"content\":\"Привет\"}}'","<%= config.bin %> api GET /profile -o yaml","<%= config.bin %> api ls","<%= config.bin %> api ls --json","<%= config.bin %> api POST /messages --describe","<%= config.bin %> api GET /messages --spec","<%= config.bin %> api POST /messages --docs"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"raw-field":{"char":"f","description":"Строковое поле (key=value)","name":"raw-field","hasDynamicHelp":false,"multiple":true,"type":"option"},"field":{"char":"F","description":"Типизированное поле (числа/boolean автоматически, @file читает файл)","name":"field","hasDynamicHelp":false,"multiple":true,"type":"option"},"input":{"description":"JSON-файл с телом запроса (- для stdin)","name":"input","hasDynamicHelp":false,"multiple":false,"type":"option"},"data":{"description":"Тело запроса инлайн JSON-строкой","name":"data","hasDynamicHelp":false,"multiple":false,"type":"option"},"query":{"description":"Query-параметр (key=value)","name":"query","hasDynamicHelp":false,"multiple":true,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"api","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":false,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","api.js"]},"auth:list":{"aliases":[],"args":{},"description":"Список сохранённых профилей","examples":["<%= config.bin %> auth list","<%= config.bin %> auth list -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","list.js"]},"auth:login":{"aliases":[],"args":{},"description":"Авторизация и сохранение токена","examples":["<%= config.bin %> auth login","<%= config.bin %> auth login --profile personal","<%= config.bin %> auth login --profile ci --token $PACHCA_TOKEN"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Имя профиля (по умолчанию \"default\")","name":"profile","default":"default","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Токен для сохранения (без интерактивного ввода)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:login","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","login.js"]},"auth:logout":{"aliases":[],"args":{"profile":{"description":"Имя профиля для удаления","name":"profile","required":false}},"description":"Удаление сохранённого профиля","examples":["<%= config.bin %> auth logout bot-notify","<%= config.bin %> auth logout"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:logout","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","logout.js"]},"auth:status":{"aliases":[],"args":{},"description":"Статус текущего профиля","examples":["<%= config.bin %> auth status","<%= config.bin %> auth status -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","status.js"]},"auth:switch":{"aliases":[],"args":{"profile":{"description":"Имя профиля для переключения","name":"profile","required":true}},"description":"Переключение активного профиля","examples":["<%= config.bin %> auth switch bot-support"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"auth:switch","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","auth","switch.js"]},"bots:create":{"aliases":[],"args":{},"description":"Новый бот","examples":["Создать бота через API и получить токен:\n $ pachca bots create","Настроить бота с исходящим вебхуком:\n $ pachca bots create","Найти и удалить бота:\n $ pachca bots list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Имя бота","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"nickname":{"description":"Никнейм бота. Должен заканчиваться на `_bot`.","name":"nickname","hasDynamicHelp":false,"multiple":false,"type":"option"},"outgoing-url":{"description":"URL исходящего вебхука","name":"outgoing-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"events":{"description":"События, на которые подписан бот","name":"events","hasDynamicHelp":false,"multiple":false,"type":"option"},"trigger-on":{"description":"Условие срабатывания исходящего вебхука","name":"trigger-on","hasDynamicHelp":false,"multiple":false,"type":"option"},"commands":{"description":"Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands","name":"commands","hasDynamicHelp":false,"multiple":false,"type":"option"},"scopes":{"description":"Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.","name":"scopes","hasDynamicHelp":false,"multiple":false,"type":"option"},"template":{"description":"Шаблон форматирования входящего вебхука","name":"template","hasDynamicHelp":false,"multiple":false,"type":"option"},"template-engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","name":"template-engine","hasDynamicHelp":false,"multiple":false,"type":"option"},"challenge-key":{"description":"Название поля проверки для верификации входящего вебхука","name":"challenge-key","hasDynamicHelp":false,"multiple":false,"type":"option"},"link-preview-enabled":{"description":"Показывать превью ссылок в сообщениях входящего вебхука","name":"link-preview-enabled","allowNo":true,"type":"boolean"},"ignore-self-messages":{"description":"Игнорировать входящие сообщения, отправленные самим ботом","name":"ignore-self-messages","allowNo":true,"type":"boolean"},"events-history-enabled":{"description":"Сохранять историю событий бота для последующего получения через метод истории событий","name":"events-history-enabled","allowNo":true,"type":"boolean"},"who-can-add":{"description":"Кто может добавлять бота в чаты","name":"who-can-add","hasDynamicHelp":false,"multiple":false,"type":"option"},"can-edit":{"description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","name":"can-edit","hasDynamicHelp":false,"multiple":false,"type":"option"},"single-chat":{"description":"Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется.","name":"single-chat","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:write","apiMethod":"POST","apiPath":"/bots","defaultColumns":["id","webhook","access_token"],"requiredFlags":["name"],"isESM":true,"relativePath":["dist","commands","bots","create.js"]},"bots:delete":{"aliases":[],"args":{"id":{"description":"Идентификатор бота (pachca bots list)","name":"id","required":true}},"description":"Удаление бота","examples":["Обновить Webhook URL бота:\n $ pachca bots update","Найти и удалить бота:\n $ pachca bots delete"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:delete","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:write","apiMethod":"DELETE","apiPath":"/bots/{id}","isESM":true,"relativePath":["dist","commands","bots","delete.js"]},"bots:get":{"aliases":[],"args":{"id":{"description":"Идентификатор бота (pachca bots list)","name":"id","required":true}},"description":"Информация о боте","examples":["Обновить Webhook URL бота:\n $ pachca bots update","Найти и удалить бота:\n $ pachca bots delete"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:read","apiMethod":"GET","apiPath":"/bots/{id}","defaultColumns":["id","webhook"],"isESM":true,"relativePath":["dist","commands","bots","get.js"]},"bots:list":{"aliases":[],"args":{},"description":"Список ботов","examples":["Создать бота через API и получить токен:\n $ pachca bots create","Настроить бота с исходящим вебхуком:\n $ pachca bots create","Найти и удалить бота:\n $ pachca bots list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"query":{"description":"Поисковая фраза для фильтрации ботов по имени","name":"query","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:read","apiMethod":"GET","apiPath":"/bots","defaultColumns":["id","webhook"],"isESM":true,"relativePath":["dist","commands","bots","list.js"]},"bots:list-events":{"aliases":[],"args":{},"description":"История событий","examples":["Обработка событий через историю (polling):\n $ pachca bots list-events"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:list-events","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"webhooks:events:read","apiMethod":"GET","apiPath":"/webhooks/events","defaultColumns":["id","created_at","event_type","payload"],"isESM":true,"relativePath":["dist","commands","bots","list-events.js"]},"bots:recreate-token":{"aliases":[],"args":{"id":{"description":"Идентификатор бота (pachca bots list)","name":"id","required":true}},"description":"Ротация токена бота","examples":["Ротация токена бота:\n $ pachca bots recreate-token"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:recreate-token","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:write","apiMethod":"POST","apiPath":"/bots/{id}/recreate_token","defaultColumns":["id","webhook","access_token"],"isESM":true,"relativePath":["dist","commands","bots","recreate-token.js"]},"bots:recreate-token-self":{"aliases":[],"args":{},"description":"Ротация собственного токена бота","examples":["Ротация токена бота:\n $ pachca bots recreate-token-self"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:recreate-token-self","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bot_self:write","apiMethod":"POST","apiPath":"/bot/recreate_token","defaultColumns":["id","webhook","access_token"],"isESM":true,"relativePath":["dist","commands","bots","recreate-token-self.js"]},"bots:remove-event":{"aliases":[],"args":{"id":{"description":"Идентификатор события (pachca bots list)","name":"id","required":true}},"description":"Удаление события","examples":["Обработка событий через историю (polling):\n $ pachca bots remove-event"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:remove-event","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"webhooks:events:delete","apiMethod":"DELETE","apiPath":"/webhooks/events/{id}","isESM":true,"relativePath":["dist","commands","bots","remove-event.js"]},"bots:update":{"aliases":[],"args":{"id":{"description":"Идентификатор бота (pachca bots list)","name":"id","required":true}},"description":"Редактирование бота","examples":["Обновить Webhook URL бота:\n $ pachca bots update","Найти и удалить бота:\n $ pachca bots delete"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Имя бота","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"nickname":{"description":"Никнейм бота. Должен заканчиваться на `_bot`.","name":"nickname","hasDynamicHelp":false,"multiple":false,"type":"option"},"outgoing-url":{"description":"URL исходящего вебхука","name":"outgoing-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"events":{"description":"События, на которые подписан бот","name":"events","hasDynamicHelp":false,"multiple":false,"type":"option"},"trigger-on":{"description":"Условие срабатывания исходящего вебхука","name":"trigger-on","hasDynamicHelp":false,"multiple":false,"type":"option"},"commands":{"description":"Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands","name":"commands","hasDynamicHelp":false,"multiple":false,"type":"option"},"scopes":{"description":"Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.","name":"scopes","hasDynamicHelp":false,"multiple":false,"type":"option"},"template":{"description":"Шаблон форматирования входящего вебхука","name":"template","hasDynamicHelp":false,"multiple":false,"type":"option"},"template-engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","name":"template-engine","hasDynamicHelp":false,"multiple":false,"type":"option"},"challenge-key":{"description":"Название поля проверки для верификации входящего вебхука","name":"challenge-key","hasDynamicHelp":false,"multiple":false,"type":"option"},"link-preview-enabled":{"description":"Показывать превью ссылок в сообщениях входящего вебхука","name":"link-preview-enabled","allowNo":true,"type":"boolean"},"ignore-self-messages":{"description":"Игнорировать входящие сообщения, отправленные самим ботом","name":"ignore-self-messages","allowNo":true,"type":"boolean"},"events-history-enabled":{"description":"Сохранять историю событий бота для последующего получения через метод истории событий","name":"events-history-enabled","allowNo":true,"type":"boolean"},"who-can-add":{"description":"Кто может добавлять бота в чаты","name":"who-can-add","hasDynamicHelp":false,"multiple":false,"type":"option"},"can-edit":{"description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","name":"can-edit","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bots:write","apiMethod":"PUT","apiPath":"/bots/{id}","defaultColumns":["id","webhook"],"isESM":true,"relativePath":["dist","commands","bots","update.js"]},"bots:update-webhook":{"aliases":[],"args":{},"description":"Саморегистрация вебхука бота","examples":["Обновить Webhook URL бота:\n $ pachca bots update-webhook"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"outgoing-url":{"description":"URL исходящего вебхука. Пустая строка отключает вебхук.","name":"outgoing-url","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"bots:update-webhook","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"bot_self:webhook:write","apiMethod":"PUT","apiPath":"/bot/webhook","defaultColumns":["id","webhook"],"requiredFlags":["outgoing-url"],"isESM":true,"relativePath":["dist","commands","bots","update-webhook.js"]},"changelog":{"aliases":[],"args":{},"description":"История изменений CLI","examples":["<%= config.bin %> changelog","<%= config.bin %> changelog -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"changelog","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","changelog.js"]},"chats:archive":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (pachca chats list)","name":"id","required":true}},"description":"Архивация чата","examples":["Архивация и управление чатом:\n $ pachca chats archive","Найти и заархивировать неактивные чаты:\n $ pachca chats archive"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:archive","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:archive","apiMethod":"PUT","apiPath":"/chats/{id}/archive","isESM":true,"relativePath":["dist","commands","chats","archive.js"]},"chats:create":{"aliases":[],"args":{},"description":"Новый чат","examples":["Создать канал и пригласить участников:\n $ pachca chats create","Создать проектную беседу из шаблона:\n $ pachca chats create","Найти активные чаты за период:\n $ pachca chats list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Название","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"member-ids":{"description":"Массив идентификаторов пользователей, которые станут участниками","name":"member-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"group-tag-ids":{"description":"Массив идентификаторов тегов, которые станут участниками","name":"group-tag-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"channel":{"description":"Является каналом","name":"channel","allowNo":true,"type":"boolean"},"public":{"description":"Открытый доступ","name":"public","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:create","apiMethod":"POST","apiPath":"/chats","defaultColumns":["id","name","created_at","owner_id","channel"],"requiredFlags":["name"],"isESM":true,"relativePath":["dist","commands","chats","create.js"]},"chats:download-export":{"aliases":[],"args":{"id":{"description":"Идентификатор экспорта (pachca chats list)","name":"id","required":true}},"description":"Скачать архив экспорта","examples":["Экспорт истории чата:\n $ pachca chats download-export"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"save":{"description":"Путь для сохранения файла","name":"save","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":["common:get-exports"],"id":"chats:download-export","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_exports:read","plan":"corporation","apiMethod":"GET","apiPath":"/chats/exports/{id}","isESM":true,"relativePath":["dist","commands","chats","download-export.js"]},"chats:get":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (pachca chats list)","name":"id","required":true}},"description":"Информация о чате","examples":["Переименовать или обновить чат:\n $ pachca chats update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:read","apiMethod":"GET","apiPath":"/chats/{id}","defaultColumns":["id","name","created_at","owner_id","channel"],"isESM":true,"relativePath":["dist","commands","chats","get.js"]},"chats:list":{"aliases":[],"args":{},"description":"Список чатов","examples":["Создать канал и пригласить участников:\n $ pachca chats create","Создать проектную беседу из шаблона:\n $ pachca chats create","Найти активные чаты за период:\n $ pachca chats list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"sort":{"description":"Поле сортировки","name":"sort","default":"id","hasDynamicHelp":false,"multiple":false,"options":["id","last_message_at"],"type":"option"},"order":{"description":"Направление сортировки","name":"order","default":"desc","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"availability":{"description":"Параметр, который отвечает за доступность и выборку чатов для пользователя","name":"availability","default":"is_member","hasDynamicHelp":false,"multiple":false,"options":["is_member","public"],"type":"option"},"last-message-at-after":{"description":"Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","name":"last-message-at-after","hasDynamicHelp":false,"multiple":false,"type":"option"},"last-message-at-before":{"description":"Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","name":"last-message-at-before","hasDynamicHelp":false,"multiple":false,"type":"option"},"personal":{"description":"Фильтрация по личным и групповым чатам. Если параметр не указан, возвращаются любые чаты.","name":"personal","allowNo":true,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:read","apiMethod":"GET","apiPath":"/chats","defaultColumns":["id","name","created_at","owner_id","channel"],"isESM":true,"relativePath":["dist","commands","chats","list.js"]},"chats:request-export":{"aliases":[],"args":{},"description":"Экспорт сообщений","examples":["Экспорт истории чата:\n $ pachca chats request-export"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"start-at":{"description":"Дата начала для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD","name":"start-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"end-at":{"description":"Дата окончания для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD","name":"end-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"webhook-url":{"description":"Адрес, на который будет отправлен вебхук по завершению экспорта","name":"webhook-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"chat-ids":{"description":"Массив идентификаторов чатов. Указывается, если нужно получить сообщения только некоторых чатов.","name":"chat-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"skip-chats-file":{"description":"Пропуск формирования файла со списком чатов (chats.json)","name":"skip-chats-file","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":["common:request-export"],"id":"chats:request-export","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_exports:write","plan":"corporation","apiMethod":"POST","apiPath":"/chats/exports","requiredFlags":["start-at","end-at","webhook-url"],"isESM":true,"relativePath":["dist","commands","chats","request-export.js"]},"chats:unarchive":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (pachca chats list)","name":"id","required":true}},"description":"Разархивация чата","examples":["Архивация и управление чатом:\n $ pachca chats unarchive"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:unarchive","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:archive","apiMethod":"PUT","apiPath":"/chats/{id}/unarchive","isESM":true,"relativePath":["dist","commands","chats","unarchive.js"]},"chats:update":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (pachca chats list)","name":"id","required":true}},"description":"Редактирование чата","examples":["Переименовать или обновить чат:\n $ pachca chats update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Название","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"public":{"description":"Открытый доступ","name":"public","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"chats:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:update","apiMethod":"PUT","apiPath":"/chats/{id}","defaultColumns":["id","name","created_at","owner_id","channel"],"isESM":true,"relativePath":["dist","commands","chats","update.js"]},"commands":{"aliases":[],"args":{},"description":"Список всех команд","examples":["<%= config.bin %> commands","<%= config.bin %> commands --available","<%= config.bin %> commands --available -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"available":{"description":"Показать только команды, доступные текущему токену","name":"available","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"commands","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","commands.js"]},"config:get":{"aliases":[],"args":{"key":{"description":"Ключ настройки","name":"key","required":true}},"description":"Получение значения конфигурации","examples":["<%= config.bin %> config get defaults.output"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"config:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","config","get.js"]},"config:list":{"aliases":[],"args":{},"description":"Список всех настроек","examples":["<%= config.bin %> config list","<%= config.bin %> config list -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"config:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","config","list.js"]},"config:set":{"aliases":[],"args":{"key":{"description":"Ключ настройки","name":"key","required":true},"value":{"description":"Значение настройки","name":"value","required":true}},"description":"Установка значения конфигурации","examples":["<%= config.bin %> config set defaults.output json","<%= config.bin %> config set defaults.timeout 60"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"config:set","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","config","set.js"]},"custom-properties:list":{"aliases":[],"args":{},"description":"Список дополнительных полей","examples":["Получить кастомные поля профиля:\n $ pachca custom-properties list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"entity-type":{"description":"Тип сущности","name":"entity-type","hasDynamicHelp":false,"multiple":false,"options":["User","Task"],"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":["common:custom-properties"],"id":"custom-properties:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"custom_properties:read","apiMethod":"GET","apiPath":"/custom_properties","defaultColumns":["id","name","data_type"],"requiredFlags":["entity-type"],"isESM":true,"relativePath":["dist","commands","custom-properties","list.js"]},"doctor":{"aliases":[],"args":{},"description":"Диагностика окружения: Node.js, сеть, токен, конфигурация","examples":["<%= config.bin %> doctor","<%= config.bin %> doctor -o json"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"doctor","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","doctor.js"]},"files:direct-url":{"aliases":[],"args":{},"description":"Загрузка файла","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"direct-url":{"description":"URL для отправки запроса (получается из ответа POST /uploads)","name":"direct-url","required":true,"hasDynamicHelp":false,"multiple":false,"type":"option"},"content-disposition":{"description":"Параметр Content-Disposition, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"content-disposition","hasDynamicHelp":false,"multiple":false,"type":"option"},"acl":{"description":"Параметр acl, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"acl","hasDynamicHelp":false,"multiple":false,"type":"option"},"policy":{"description":"Параметр policy, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"policy","hasDynamicHelp":false,"multiple":false,"type":"option"},"x-amz-credential":{"description":"Параметр x-amz-credential, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"x-amz-credential","hasDynamicHelp":false,"multiple":false,"type":"option"},"x-amz-algorithm":{"description":"Параметр x-amz-algorithm, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"x-amz-algorithm","hasDynamicHelp":false,"multiple":false,"type":"option"},"x-amz-date":{"description":"Параметр x-amz-date, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"x-amz-date","hasDynamicHelp":false,"multiple":false,"type":"option"},"x-amz-signature":{"description":"Параметр x-amz-signature, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"x-amz-signature","hasDynamicHelp":false,"multiple":false,"type":"option"},"key":{"description":"Параметр key, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)","name":"key","hasDynamicHelp":false,"multiple":false,"type":"option"},"file":{"description":"Файл для загрузки","name":"file","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":["common:direct-url"],"id":"files:direct-url","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"apiMethod":"POST","apiPath":"/direct_url","requiredFlags":["content-disposition","acl","policy","x-amz-credential","x-amz-algorithm","x-amz-date","x-amz-signature","key"],"isESM":true,"relativePath":["dist","commands","files","direct-url.js"]},"files:uploads":{"aliases":[],"args":{},"description":"Получение подписи, ключа и других параметров","examples":["Изменить вложения сообщения:\n $ pachca files uploads"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":["common:uploads"],"id":"files:uploads","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"uploads:write","apiMethod":"POST","apiPath":"/uploads","defaultColumns":["Content-Disposition","acl","policy","x-amz-credential","x-amz-algorithm"],"isESM":true,"relativePath":["dist","commands","files","uploads.js"]},"group-tags:create":{"aliases":[],"args":{},"description":"Новый тег","examples":["Массовое создание сотрудников с тегами:\n $ pachca group-tags create","Получить всех сотрудников тега/департамента:\n $ pachca group-tags list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Название тега","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:write","apiMethod":"POST","apiPath":"/group_tags","defaultColumns":["id","name","users_count"],"requiredFlags":["name"],"isESM":true,"relativePath":["dist","commands","group-tags","create.js"]},"group-tags:delete":{"aliases":[],"args":{"id":{"description":"Идентификатор тега","name":"id","required":true}},"description":"Удаление тега","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:delete","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:write","apiMethod":"DELETE","apiPath":"/group_tags/{id}","isESM":true,"relativePath":["dist","commands","group-tags","delete.js"]},"group-tags:get":{"aliases":[],"args":{"id":{"description":"Идентификатор тега","name":"id","required":true}},"description":"Информация о теге","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:read","apiMethod":"GET","apiPath":"/group_tags/{id}","defaultColumns":["id","name","users_count"],"isESM":true,"relativePath":["dist","commands","group-tags","get.js"]},"group-tags:list":{"aliases":[],"args":{},"description":"Список тегов сотрудников","examples":["Массовое создание сотрудников с тегами:\n $ pachca group-tags create","Получить всех сотрудников тега/департамента:\n $ pachca group-tags list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"names":{"description":"Массив названий тегов, по которым вы хотите отфильтровать список (через запятую)","name":"names","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:read","apiMethod":"GET","apiPath":"/group_tags","defaultColumns":["id","name","users_count"],"isESM":true,"relativePath":["dist","commands","group-tags","list.js"]},"group-tags:list-users":{"aliases":[],"args":{"id":{"description":"Идентификатор тега","name":"id","required":true}},"description":"Список сотрудников тега","examples":["Получить всех сотрудников тега/департамента:\n $ pachca group-tags list-users"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:list-users","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:read","apiMethod":"GET","apiPath":"/group_tags/{id}/users","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","group-tags","list-users.js"]},"group-tags:update":{"aliases":[],"args":{"id":{"description":"Идентификатор тега","name":"id","required":true}},"description":"Редактирование тега","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"name":{"description":"Название тега","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"group-tags:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"group_tags:write","apiMethod":"PUT","apiPath":"/group_tags/{id}","defaultColumns":["id","name","users_count"],"requiredFlags":["name"],"isESM":true,"relativePath":["dist","commands","group-tags","update.js"]},"guide":{"aliases":[],"args":{"query":{"description":"Поисковый запрос","name":"query","required":false}},"description":"Поиск сценариев использования","examples":["<%= config.bin %> guide \"отправить файл\"","<%= config.bin %> guide \"создать бота\"","<%= config.bin %> guide"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"guide","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","guide.js"]},"introspect":{"aliases":[],"args":{"command":{"description":"Имя команды (например, \"messages create\")","name":"command","required":false}},"description":"Метаданные команды в машиночитаемом формате","examples":["<%= config.bin %> introspect messages create","<%= config.bin %> introspect"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"introspect","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":false,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","introspect.js"]},"members:add":{"aliases":[],"args":{"id":{"description":"Идентификатор чата (беседа, канал или чат треда)","name":"id","required":true}},"description":"Добавление пользователей","examples":["Подписаться на тред сообщения:\n $ pachca members add","Упомянуть пользователя:\n $ pachca members list","Создать канал и пригласить участников:\n $ pachca members add"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"member-ids":{"description":"Массив идентификаторов пользователей, которые станут участниками","name":"member-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"silent":{"description":"Не создавать в чате системное сообщение о добавлении участника","name":"silent","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:add","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"POST","apiPath":"/chats/{id}/members","requiredFlags":["member-ids"],"isESM":true,"relativePath":["dist","commands","members","add.js"]},"members:add-group-tags":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true}},"description":"Добавление тегов","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"group-tag-ids":{"description":"Массив идентификаторов тегов, которые станут участниками","name":"group-tag-ids","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:add-group-tags","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"POST","apiPath":"/chats/{id}/group_tags","requiredFlags":["group-tag-ids"],"isESM":true,"relativePath":["dist","commands","members","add-group-tags.js"]},"members:leave":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true}},"description":"Выход из беседы или канала","examples":["Архивация и управление чатом:\n $ pachca members leave"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:leave","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chats:leave","apiMethod":"DELETE","apiPath":"/chats/{id}/leave","isESM":true,"relativePath":["dist","commands","members","leave.js"]},"members:list":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true}},"description":"Список участников чата","examples":["Подписаться на тред сообщения:\n $ pachca members add","Упомянуть пользователя:\n $ pachca members list","Создать канал и пригласить участников:\n $ pachca members add"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"role":{"description":"Роль в чате","name":"role","default":"all","hasDynamicHelp":false,"multiple":false,"options":["all","owner","admin","editor","member"],"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:read","apiMethod":"GET","apiPath":"/chats/{id}/members","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","members","list.js"]},"members:remove":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true},"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Исключение пользователя","examples":["Архивация и управление чатом:\n $ pachca members update","Архивация и управление чатом:\n $ pachca members remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:remove","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"DELETE","apiPath":"/chats/{id}/members/{user_id}","isESM":true,"relativePath":["dist","commands","members","remove.js"]},"members:remove-group-tag":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true},"tag_id":{"description":"Идентификатор тега (pachca tags list)","name":"tag_id","required":true}},"description":"Исключение тега","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:remove-group-tag","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"DELETE","apiPath":"/chats/{id}/group_tags/{tag_id}","isESM":true,"relativePath":["dist","commands","members","remove-group-tag.js"]},"members:update":{"aliases":[],"args":{"id":{"description":"Идентификатор чата","name":"id","required":true},"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Редактирование роли","examples":["Архивация и управление чатом:\n $ pachca members update","Архивация и управление чатом:\n $ pachca members remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"role":{"description":"Роль","name":"role","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"members:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"chat_members:write","apiMethod":"PUT","apiPath":"/chats/{id}/members/{user_id}","requiredFlags":["role"],"isESM":true,"relativePath":["dist","commands","members","update.js"]},"messages:create":{"aliases":[],"args":{},"description":"Новое сообщение","examples":["Найти чат по имени и отправить сообщение:\n $ pachca messages create","Отправить сообщение в канал или беседу (если chat_id известен):\n $ pachca messages create","Отправить личное сообщение пользователю:\n $ pachca messages create"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"entity-type":{"description":"Тип сущности","name":"entity-type","hasDynamicHelp":false,"multiple":false,"type":"option"},"entity-id":{"description":"Идентификатор сущности (pachca chats list | pachca users list)","name":"entity-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"content":{"description":"Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).","name":"content","hasDynamicHelp":false,"multiple":false,"type":"option"},"files":{"description":"Прикрепляемые файлы","name":"files","hasDynamicHelp":false,"multiple":false,"type":"option"},"buttons":{"description":"Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке.","name":"buttons","hasDynamicHelp":false,"multiple":false,"type":"option"},"parent-message-id":{"description":"Идентификатор сообщения. Указывается в случае, если вы отправляете ответ на другое сообщение.","name":"parent-message-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"display-avatar-url":{"description":"Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота. (макс. 255 символов)","name":"display-avatar-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"display-name":{"description":"Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота. (макс. 255 символов)","name":"display-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"skip-invite-mentions":{"description":"Пропуск добавления упоминаемых пользователей в тред. Работает только при отправке сообщения в тред.","name":"skip-invite-mentions","allowNo":true,"type":"boolean"},"link-preview":{"description":"Отображение предпросмотра первой найденной ссылки в тексте сообщения","name":"link-preview","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:create","apiMethod":"POST","apiPath":"/messages","defaultColumns":["id","content","created_at","entity_type","entity_id"],"requiredFlags":["entity-id","content"],"isESM":true,"relativePath":["dist","commands","messages","create.js"]},"messages:delete":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Удаление сообщения","examples":["Получить вложения из сообщения:\n $ pachca messages get","Отредактировать сообщение:\n $ pachca messages update","Изменить вложения сообщения:\n $ pachca messages get"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:delete","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:delete","apiMethod":"DELETE","apiPath":"/messages/{id}","isESM":true,"relativePath":["dist","commands","messages","delete.js"]},"messages:get":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Информация о сообщении","examples":["Получить вложения из сообщения:\n $ pachca messages get","Отредактировать сообщение:\n $ pachca messages update","Изменить вложения сообщения:\n $ pachca messages get"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:read","apiMethod":"GET","apiPath":"/messages/{id}","defaultColumns":["id","content","created_at","entity_type","entity_id"],"isESM":true,"relativePath":["dist","commands","messages","get.js"]},"messages:list":{"aliases":[],"args":{"chat_id":{"description":"Идентификатор чата (беседа, канал, диалог или чат треда)","name":"chat_id","required":false}},"description":"Список сообщений чата","examples":["Найти чат по имени и отправить сообщение:\n $ pachca messages create","Отправить сообщение в канал или беседу (если chat_id известен):\n $ pachca messages create","Отправить личное сообщение пользователю:\n $ pachca messages create"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"chat-id":{"description":"Идентификатор чата (беседа, канал, диалог или чат треда)","name":"chat-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"sort":{"description":"Поле сортировки","name":"sort","default":"id","hasDynamicHelp":false,"multiple":false,"options":["id"],"type":"option"},"order":{"description":"Направление сортировки","name":"order","default":"desc","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:read","apiMethod":"GET","apiPath":"/messages","defaultColumns":["id","content","created_at","entity_type","entity_id"],"requiredFlags":["chat-id"],"isESM":true,"relativePath":["dist","commands","messages","list.js"]},"messages:pin":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Закрепление сообщения","examples":["Закрепить/открепить сообщение:\n $ pachca messages pin","Закрепить/открепить сообщение:\n $ pachca messages unpin"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:pin","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"pins:write","apiMethod":"POST","apiPath":"/messages/{id}/pin","isESM":true,"relativePath":["dist","commands","messages","pin.js"]},"messages:unfurl":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Unfurl (разворачивание ссылок)","examples":["Разворачивание ссылок (unfurling):\n $ pachca messages unfurl"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"link-previews":{"description":"`JSON` карта предпросмотров ссылок, где каждый ключ — `URL`, который был получен в исходящем вебхуке о новом сообщении.","name":"link-previews","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":["link-previews:add"],"id":"messages:unfurl","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"link_previews:write","apiMethod":"POST","apiPath":"/messages/{id}/link_previews","requiredFlags":["link-previews"],"isESM":true,"relativePath":["dist","commands","messages","unfurl.js"]},"messages:unpin":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Открепление сообщения","examples":["Закрепить/открепить сообщение:\n $ pachca messages pin","Закрепить/открепить сообщение:\n $ pachca messages unpin"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:unpin","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"pins:write","apiMethod":"DELETE","apiPath":"/messages/{id}/pin","isESM":true,"relativePath":["dist","commands","messages","unpin.js"]},"messages:update":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения (pachca messages list)","name":"id","required":true}},"description":"Редактирование сообщения","examples":["Получить вложения из сообщения:\n $ pachca messages get","Отредактировать сообщение:\n $ pachca messages update","Изменить вложения сообщения:\n $ pachca messages get"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"content":{"description":"Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).","name":"content","hasDynamicHelp":false,"multiple":false,"type":"option"},"files":{"description":"Прикрепляемые файлы","name":"files","hasDynamicHelp":false,"multiple":false,"type":"option"},"buttons":{"description":"Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке. Для удаления кнопок пришлите пустой массив.","name":"buttons","hasDynamicHelp":false,"multiple":false,"type":"option"},"display-avatar-url":{"description":"Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","name":"display-avatar-url","hasDynamicHelp":false,"multiple":false,"type":"option"},"display-name":{"description":"Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","name":"display-name","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"messages:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:update","apiMethod":"PUT","apiPath":"/messages/{id}","defaultColumns":["id","content","created_at","entity_type","entity_id"],"isESM":true,"relativePath":["dist","commands","messages","update.js"]},"oauth:token-info":{"aliases":[],"args":{},"description":"Информация о токене","examples":["Проверить свой токен:\n $ pachca oauth token-info"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":["profile:get-info"],"id":"oauth:token-info","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"apiMethod":"GET","apiPath":"/oauth/token/info","defaultColumns":["id","name","created_at","token","user_id"],"isESM":true,"relativePath":["dist","commands","oauth","token-info.js"]},"profile:delete-avatar":{"aliases":[],"args":{},"description":"Удаление своего аватара","examples":["Загрузить аватар профиля:\n $ pachca profile update-avatar","Удалить аватар профиля:\n $ pachca profile delete-avatar"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:delete-avatar","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_avatar:write","apiMethod":"DELETE","apiPath":"/profile/avatar","isESM":true,"relativePath":["dist","commands","profile","delete-avatar.js"]},"profile:delete-status":{"aliases":[],"args":{},"description":"Удаление своего статуса","examples":["Установить статус:\n $ pachca profile update-status","Сбросить статус:\n $ pachca profile delete-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:delete-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_status:write","apiMethod":"DELETE","apiPath":"/profile/status","isESM":true,"relativePath":["dist","commands","profile","delete-status.js"]},"profile:get":{"aliases":[],"args":{},"description":"Свой профиль","examples":["Получить свой профиль:\n $ pachca profile get","Получить кастомные поля профиля:\n $ pachca profile get"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile:read","apiMethod":"GET","apiPath":"/profile","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","profile","get.js"]},"profile:get-status":{"aliases":[],"args":{},"description":"Свой статус","examples":["Установить статус:\n $ pachca profile update-status","Сбросить статус:\n $ pachca profile delete-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:get-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_status:read","apiMethod":"GET","apiPath":"/profile/status","defaultColumns":["title","emoji","expires_at","is_away"],"isESM":true,"relativePath":["dist","commands","profile","get-status.js"]},"profile:update-avatar":{"aliases":[],"args":{},"description":"Загрузка своего аватара","examples":["Загрузить аватар профиля:\n $ pachca profile update-avatar","Удалить аватар профиля:\n $ pachca profile delete-avatar"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"file":{"description":"Файл изображения для аватара","name":"file","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:update-avatar","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_avatar:write","apiMethod":"PUT","apiPath":"/profile/avatar","defaultColumns":["image_url"],"isESM":true,"relativePath":["dist","commands","profile","update-avatar.js"]},"profile:update-status":{"aliases":[],"args":{},"description":"Новый свой статус","examples":["Установить статус:\n $ pachca profile update-status","Сбросить статус:\n $ pachca profile delete-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"emoji":{"description":"Emoji символ статуса","name":"emoji","hasDynamicHelp":false,"multiple":false,"type":"option"},"title":{"description":"Текст статуса","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"expires-at":{"description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","name":"expires-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"is-away":{"description":"Режим «Нет на месте»","name":"is-away","allowNo":true,"type":"boolean"},"away-message":{"description":"Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях. (макс. 1024 символов)","name":"away-message","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"profile:update-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"profile_status:write","apiMethod":"PUT","apiPath":"/profile/status","defaultColumns":["title","emoji","expires_at","is_away"],"requiredFlags":["emoji","title"],"isESM":true,"relativePath":["dist","commands","profile","update-status.js"]},"reactions:add":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Добавление реакции","examples":["Добавить реакцию на сообщение:\n $ pachca reactions add","Добавить реакцию на сообщение:\n $ pachca reactions remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"code":{"description":"Emoji символ реакции","name":"code","hasDynamicHelp":false,"multiple":false,"type":"option"},"name":{"description":"Текстовое имя эмодзи (используется для кастомных эмодзи)","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"reactions:add","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"reactions:write","apiMethod":"POST","apiPath":"/messages/{id}/reactions","defaultColumns":["name","created_at","user_id","code"],"requiredFlags":["code"],"isESM":true,"relativePath":["dist","commands","reactions","add.js"]},"reactions:list":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Список реакций","examples":["Добавить реакцию на сообщение:\n $ pachca reactions add","Добавить реакцию на сообщение:\n $ pachca reactions remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"reactions:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"reactions:read","apiMethod":"GET","apiPath":"/messages/{id}/reactions","defaultColumns":["name","created_at","user_id","code"],"isESM":true,"relativePath":["dist","commands","reactions","list.js"]},"reactions:remove":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Удаление реакции","examples":["Добавить реакцию на сообщение:\n $ pachca reactions add","Добавить реакцию на сообщение:\n $ pachca reactions remove"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"code":{"description":"Emoji символ реакции","name":"code","hasDynamicHelp":false,"multiple":false,"type":"option"},"name":{"description":"Текстовое имя эмодзи (используется для кастомных эмодзи)","name":"name","hasDynamicHelp":false,"multiple":false,"type":"option"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"reactions:remove","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"reactions:write","apiMethod":"DELETE","apiPath":"/messages/{id}/reactions","requiredFlags":["code"],"isESM":true,"relativePath":["dist","commands","reactions","remove.js"]},"read-member:list-readers":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Список прочитавших сообщение","examples":["Проверить, кто прочитал сообщение:\n $ pachca read-member list-readers"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"read-member:list-readers","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"messages:read","apiMethod":"GET","apiPath":"/messages/{id}/read_member_ids","isESM":true,"relativePath":["dist","commands","read-member","list-readers.js"]},"search:list-chats":{"aliases":[],"args":{},"description":"Поиск чатов","examples":["Найти чат по имени и отправить сообщение:\n $ pachca search list-chats","Найти чат по названию:\n $ pachca search list-chats"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"query":{"description":"Текст поискового запроса","name":"query","hasDynamicHelp":false,"multiple":false,"type":"option"},"order":{"description":"Направление сортировки","name":"order","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"created-from":{"description":"Фильтр по дате создания (от)","name":"created-from","hasDynamicHelp":false,"multiple":false,"type":"option"},"created-to":{"description":"Фильтр по дате создания (до)","name":"created-to","hasDynamicHelp":false,"multiple":false,"type":"option"},"active":{"description":"Фильтр по активности чата","name":"active","allowNo":true,"type":"boolean"},"chat-subtype":{"description":"Фильтр по типу чата","name":"chat-subtype","hasDynamicHelp":false,"multiple":false,"options":["discussion","thread"],"type":"option"},"personal":{"description":"Фильтр по личным чатам","name":"personal","allowNo":true,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"search:list-chats","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"search:chats","apiMethod":"GET","apiPath":"/search/chats","defaultColumns":["id","name","created_at","owner_id","channel"],"isESM":true,"relativePath":["dist","commands","search","list-chats.js"]},"search:list-messages":{"aliases":[],"args":{},"description":"Поиск сообщений","examples":["Найти сообщение по тексту:\n $ pachca search list-messages"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"query":{"description":"Текст поискового запроса","name":"query","hasDynamicHelp":false,"multiple":false,"type":"option"},"order":{"description":"Направление сортировки","name":"order","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"sort":{"description":"Сортировка результатов","name":"sort","default":"created_at","hasDynamicHelp":false,"multiple":false,"options":["created_at","relevance"],"type":"option"},"created-from":{"description":"Фильтр по дате создания (от)","name":"created-from","hasDynamicHelp":false,"multiple":false,"type":"option"},"created-to":{"description":"Фильтр по дате создания (до)","name":"created-to","hasDynamicHelp":false,"multiple":false,"type":"option"},"chat-ids":{"description":"Фильтр по ID чатов (через запятую)","name":"chat-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"user-ids":{"description":"Фильтр по ID авторов сообщений (через запятую)","name":"user-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"active":{"description":"Фильтр по активности чата","name":"active","allowNo":true,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"search:list-messages","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"search:messages","apiMethod":"GET","apiPath":"/search/messages","defaultColumns":["id","content","created_at","entity_type","entity_id"],"isESM":true,"relativePath":["dist","commands","search","list-messages.js"]},"search:list-users":{"aliases":[],"args":{},"description":"Поиск сотрудников","examples":["Отправить личное сообщение пользователю:\n $ pachca search list-users","Упомянуть пользователя:\n $ pachca search list-users","Найти сотрудника по имени:\n $ pachca search list-users"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"query":{"description":"Текст поискового запроса","name":"query","hasDynamicHelp":false,"multiple":false,"type":"option"},"sort":{"description":"Сортировка результатов","name":"sort","hasDynamicHelp":false,"multiple":false,"options":["by_score","alphabetical","creation"],"type":"option"},"order":{"description":"Направление сортировки","name":"order","hasDynamicHelp":false,"multiple":false,"options":["asc","desc"],"type":"option"},"created-from":{"description":"Фильтр по дате создания (от)","name":"created-from","hasDynamicHelp":false,"multiple":false,"type":"option"},"created-to":{"description":"Фильтр по дате создания (до)","name":"created-to","hasDynamicHelp":false,"multiple":false,"type":"option"},"company-roles":{"description":"Фильтр по ролям сотрудников (через запятую)","name":"company-roles","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"search:list-users","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"search:users","apiMethod":"GET","apiPath":"/search/users","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","search","list-users.js"]},"security:list":{"aliases":[],"args":{},"description":"Журнал аудита событий","examples":["Получить журнал аудита событий:\n $ pachca security list","Мониторинг подозрительных входов:\n $ pachca security list","Экспорт логов за период:\n $ pachca security list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"start-time":{"description":"Начальная метка времени (включительно)","name":"start-time","hasDynamicHelp":false,"multiple":false,"type":"option"},"end-time":{"description":"Конечная метка времени (исключительно)","name":"end-time","hasDynamicHelp":false,"multiple":false,"type":"option"},"event-key":{"description":"Фильтр по конкретному типу события","name":"event-key","hasDynamicHelp":false,"multiple":false,"options":["user_login","user_logout","user_2fa_fail","user_2fa_success","user_created","user_deleted","user_role_changed","user_updated","tag_created","tag_deleted","user_added_to_tag","user_removed_from_tag","chat_created","chat_renamed","chat_permission_changed","user_chat_join","user_chat_leave","tag_added_to_chat","tag_removed_from_chat","message_updated","message_deleted","message_created","reaction_created","reaction_deleted","thread_created","access_token_created","access_token_updated","access_token_destroy","kms_encrypt","kms_decrypt","audit_events_accessed","dlp_violation_detected","search_users_api","search_chats_api","search_messages_api","bot_scopes_updated","bot_webhook_settings_updated","bot_token_recreated","bot_deleted"],"type":"option"},"actor-id":{"description":"Идентификатор пользователя, выполнившего действие","name":"actor-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"actor-type":{"description":"Тип актора","name":"actor-type","hasDynamicHelp":false,"multiple":false,"type":"option"},"entity-id":{"description":"Идентификатор затронутой сущности","name":"entity-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"entity-type":{"description":"Тип сущности","name":"entity-type","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"security:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"audit_events:read","plan":"corporation","apiMethod":"GET","apiPath":"/audit_events","defaultColumns":["id","created_at","event_key","entity_id","entity_type"],"isESM":true,"relativePath":["dist","commands","security","list.js"]},"tasks:create":{"aliases":[],"args":{},"description":"Новое напоминание","examples":["Форма заявки/запроса:\n $ pachca tasks create","Создать напоминание:\n $ pachca tasks create","Получить список предстоящих задач:\n $ pachca tasks list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"kind":{"description":"Тип","name":"kind","hasDynamicHelp":false,"multiple":false,"type":"option"},"content":{"description":"Описание (по умолчанию — название типа)","name":"content","hasDynamicHelp":false,"multiple":false,"type":"option"},"due-at":{"description":"Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).","name":"due-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"priority":{"description":"Приоритет: 1, 2 (важно) или 3 (очень важно).","name":"priority","hasDynamicHelp":false,"multiple":false,"type":"option"},"performer-ids":{"description":"Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы)","name":"performer-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"chat-id":{"description":"Идентификатор чата, к которому привязывается напоминание (pachca chats list)","name":"chat-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"all-day":{"description":"Напоминание на весь день (без указания времени)","name":"all-day","allowNo":true,"type":"boolean"},"custom-properties":{"description":"Задаваемые дополнительные поля","name":"custom-properties","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:create","apiMethod":"POST","apiPath":"/tasks","defaultColumns":["id","content","created_at","kind","due_at"],"requiredFlags":["kind"],"isESM":true,"relativePath":["dist","commands","tasks","create.js"]},"tasks:delete":{"aliases":[],"args":{"id":{"description":"Идентификатор напоминания (pachca tasks list)","name":"id","required":true}},"description":"Удаление напоминания","examples":["Получить задачу по ID:\n $ pachca tasks get","Отметить задачу выполненной:\n $ pachca tasks update","Обновить задачу (перенести срок, сменить ответственных):\n $ pachca tasks update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:delete","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:delete","apiMethod":"DELETE","apiPath":"/tasks/{id}","isESM":true,"relativePath":["dist","commands","tasks","delete.js"]},"tasks:get":{"aliases":[],"args":{"id":{"description":"Идентификатор напоминания (pachca tasks list)","name":"id","required":true}},"description":"Информация о напоминании","examples":["Получить задачу по ID:\n $ pachca tasks get","Отметить задачу выполненной:\n $ pachca tasks update","Обновить задачу (перенести срок, сменить ответственных):\n $ pachca tasks update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:read","apiMethod":"GET","apiPath":"/tasks/{id}","defaultColumns":["id","content","created_at","kind","due_at"],"isESM":true,"relativePath":["dist","commands","tasks","get.js"]},"tasks:list":{"aliases":[],"args":{},"description":"Список напоминаний","examples":["Форма заявки/запроса:\n $ pachca tasks create","Создать напоминание:\n $ pachca tasks create","Получить список предстоящих задач:\n $ pachca tasks list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:read","apiMethod":"GET","apiPath":"/tasks","defaultColumns":["id","content","created_at","kind","due_at"],"isESM":true,"relativePath":["dist","commands","tasks","list.js"]},"tasks:update":{"aliases":[],"args":{"id":{"description":"Идентификатор напоминания (pachca tasks list)","name":"id","required":true}},"description":"Редактирование напоминания","examples":["Получить задачу по ID:\n $ pachca tasks get","Отметить задачу выполненной:\n $ pachca tasks update","Обновить задачу (перенести срок, сменить ответственных):\n $ pachca tasks update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"kind":{"description":"Тип","name":"kind","hasDynamicHelp":false,"multiple":false,"type":"option"},"content":{"description":"Описание","name":"content","hasDynamicHelp":false,"multiple":false,"type":"option"},"due-at":{"description":"Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).","name":"due-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"priority":{"description":"Приоритет: 1, 2 (важно) или 3 (очень важно).","name":"priority","hasDynamicHelp":false,"multiple":false,"type":"option"},"performer-ids":{"description":"Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные»","name":"performer-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"status":{"description":"Статус","name":"status","hasDynamicHelp":false,"multiple":false,"type":"option"},"all-day":{"description":"Напоминание на весь день (без указания времени)","name":"all-day","allowNo":true,"type":"boolean"},"done-at":{"description":"Дата и время выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","name":"done-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"custom-properties":{"description":"Задаваемые дополнительные поля","name":"custom-properties","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"tasks:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"tasks:update","apiMethod":"PUT","apiPath":"/tasks/{id}","defaultColumns":["id","content","created_at","kind","due_at"],"isESM":true,"relativePath":["dist","commands","tasks","update.js"]},"threads:add":{"aliases":[],"args":{"id":{"description":"Идентификатор сообщения","name":"id","required":true}},"description":"Новый тред","examples":["Ответить в тред (комментарий к сообщению):\n $ pachca thread add","Подписаться на тред сообщения:\n $ pachca thread add"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"threads:add","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"threads:create","apiMethod":"POST","apiPath":"/messages/{id}/thread","defaultColumns":["id","chat_id","message_id","message_chat_id","updated_at"],"isESM":true,"relativePath":["dist","commands","threads","add.js"]},"threads:get":{"aliases":[],"args":{"id":{"description":"Идентификатор треда","name":"id","required":true}},"description":"Информация о треде","flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"threads:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"threads:read","apiMethod":"GET","apiPath":"/threads/{id}","defaultColumns":["id","chat_id","message_id","message_chat_id","updated_at"],"isESM":true,"relativePath":["dist","commands","threads","get.js"]},"threads:list":{"aliases":[],"args":{},"description":"Список тредов","examples":["Получить список активных тредов за период:\n $ pachca threads list"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"last-message-at-after":{"description":"Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","name":"last-message-at-after","hasDynamicHelp":false,"multiple":false,"type":"option"},"last-message-at-before":{"description":"Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","name":"last-message-at-before","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"threads:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"threads:read","apiMethod":"GET","apiPath":"/threads","defaultColumns":["id","chat_id","message_id","message_chat_id","updated_at"],"isESM":true,"relativePath":["dist","commands","threads","list.js"]},"upgrade":{"aliases":[],"args":{},"description":"Обновить CLI до последней версии","examples":["<%= config.bin %> upgrade"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"upgrade","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","upgrade.js"]},"upload":{"aliases":[],"args":{"file":{"description":"Путь к файлу или - для stdin","name":"file","required":true}},"description":"Загрузить файл (получает подпись и загружает автоматически)","examples":["<%= config.bin %> upload photo.jpg","cat data.csv | <%= config.bin %> upload -"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"upload","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"uploads:write","isESM":true,"relativePath":["dist","commands","upload.js"]},"users:create":{"aliases":[],"args":{},"description":"Новый сотрудник","examples":["Проверить, кто прочитал сообщение:\n $ pachca users list","Разослать уведомление нескольким пользователям:\n $ pachca users list","Массовое создание сотрудников с тегами:\n $ pachca users create"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"first-name":{"description":"Имя","name":"first-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"last-name":{"description":"Фамилия","name":"last-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"email":{"description":"Электронная почта","name":"email","hasDynamicHelp":false,"multiple":false,"type":"option"},"phone-number":{"description":"Телефон","name":"phone-number","hasDynamicHelp":false,"multiple":false,"type":"option"},"nickname":{"description":"Имя пользователя","name":"nickname","hasDynamicHelp":false,"multiple":false,"type":"option"},"department":{"description":"Департамент","name":"department","hasDynamicHelp":false,"multiple":false,"type":"option"},"title":{"description":"Должность","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"role":{"description":"Уровень доступа","name":"role","hasDynamicHelp":false,"multiple":false,"type":"option"},"suspended":{"description":"Деактивация пользователя","name":"suspended","allowNo":true,"type":"boolean"},"list-tags":{"description":"Массив тегов, привязываемых к сотруднику","name":"list-tags","hasDynamicHelp":false,"multiple":false,"type":"option"},"chat-ids":{"description":"Идентификаторы чатов, в которые сотрудник будет добавлен сразу при создании. Для роли `guest` параметр обязателен и должен содержать ровно один активный чат.","name":"chat-ids","hasDynamicHelp":false,"multiple":false,"type":"option"},"custom-properties":{"description":"Задаваемые дополнительные поля","name":"custom-properties","hasDynamicHelp":false,"multiple":false,"type":"option"},"skip-email-notify":{"description":"Пропуск этапа отправки приглашения сотруднику. Сотруднику не будет отправлено письмо на электронную почту с приглашением создать аккаунт. Полезно при предварительном создании аккаунтов перед входом через SSO.","name":"skip-email-notify","allowNo":true,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:create","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:create","apiMethod":"POST","apiPath":"/users","defaultColumns":["id","title","first_name","last_name","email"],"requiredFlags":["email"],"isESM":true,"relativePath":["dist","commands","users","create.js"]},"users:delete":{"aliases":[],"args":{"id":{"description":"Идентификатор пользователя (pachca users list)","name":"id","required":true}},"description":"Удаление сотрудника","examples":["Получить сотрудника по ID:\n $ pachca users get","Массовое создание сотрудников с тегами:\n $ pachca users update","Offboarding сотрудника:\n $ pachca users update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:delete","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:delete","apiMethod":"DELETE","apiPath":"/users/{id}","isESM":true,"relativePath":["dist","commands","users","delete.js"]},"users:get":{"aliases":[],"args":{"id":{"description":"Идентификатор пользователя (pachca users list)","name":"id","required":true}},"description":"Информация о сотруднике","examples":["Получить сотрудника по ID:\n $ pachca users get","Массовое создание сотрудников с тегами:\n $ pachca users update","Offboarding сотрудника:\n $ pachca users update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:get","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:read","apiMethod":"GET","apiPath":"/users/{id}","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","users","get.js"]},"users:get-status":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Статус сотрудника","examples":["Управление статусом сотрудника:\n $ pachca users get-status","Управление статусом сотрудника:\n $ pachca users update-status","Управление статусом сотрудника:\n $ pachca users remove-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:get-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_status:read","apiMethod":"GET","apiPath":"/users/{user_id}/status","defaultColumns":["title","emoji","expires_at","is_away"],"isESM":true,"relativePath":["dist","commands","users","get-status.js"]},"users:list":{"aliases":[],"args":{},"description":"Список сотрудников","examples":["Проверить, кто прочитал сообщение:\n $ pachca users list","Разослать уведомление нескольким пользователям:\n $ pachca users list","Массовое создание сотрудников с тегами:\n $ pachca users create"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"query":{"description":"Поисковая фраза для фильтрации результатов. Поиск работает по полям: `first_name` (имя), `last_name` (фамилия), `email` (электронная почта), `phone_number` (телефон) и `nickname` (никнейм).","name":"query","hasDynamicHelp":false,"multiple":false,"type":"option"},"limit":{"description":"Количество результатов на страницу","name":"limit","hasDynamicHelp":false,"multiple":false,"type":"option"},"cursor":{"description":"Курсор для следующей страницы","name":"cursor","hasDynamicHelp":false,"multiple":false,"type":"option"},"all":{"description":"Загрузить все страницы автоматически","name":"all","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:list","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:read","apiMethod":"GET","apiPath":"/users","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","users","list.js"]},"users:remove-avatar":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Удаление аватара сотрудника","examples":["Загрузить аватар сотрудника:\n $ pachca users update-avatar","Удалить аватар сотрудника:\n $ pachca users remove-avatar"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:remove-avatar","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_avatar:write","apiMethod":"DELETE","apiPath":"/users/{user_id}/avatar","isESM":true,"relativePath":["dist","commands","users","remove-avatar.js"]},"users:remove-status":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Удаление статуса сотрудника","examples":["Управление статусом сотрудника:\n $ pachca users get-status","Управление статусом сотрудника:\n $ pachca users update-status","Управление статусом сотрудника:\n $ pachca users remove-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"force":{"description":"Пропустить подтверждение","name":"force","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:remove-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_status:write","apiMethod":"DELETE","apiPath":"/users/{user_id}/status","isESM":true,"relativePath":["dist","commands","users","remove-status.js"]},"users:update":{"aliases":[],"args":{"id":{"description":"Идентификатор пользователя (pachca users list)","name":"id","required":true}},"description":"Редактирование сотрудника","examples":["Получить сотрудника по ID:\n $ pachca users get","Массовое создание сотрудников с тегами:\n $ pachca users update","Offboarding сотрудника:\n $ pachca users update"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"first-name":{"description":"Имя","name":"first-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"last-name":{"description":"Фамилия","name":"last-name","hasDynamicHelp":false,"multiple":false,"type":"option"},"email":{"description":"Электронная почта","name":"email","hasDynamicHelp":false,"multiple":false,"type":"option"},"phone-number":{"description":"Телефон","name":"phone-number","hasDynamicHelp":false,"multiple":false,"type":"option"},"nickname":{"description":"Имя пользователя","name":"nickname","hasDynamicHelp":false,"multiple":false,"type":"option"},"department":{"description":"Департамент","name":"department","hasDynamicHelp":false,"multiple":false,"type":"option"},"title":{"description":"Должность","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"role":{"description":"Уровень доступа","name":"role","hasDynamicHelp":false,"multiple":false,"type":"option"},"suspended":{"description":"Деактивация пользователя","name":"suspended","allowNo":true,"type":"boolean"},"list-tags":{"description":"Массив тегов, привязываемых к сотруднику","name":"list-tags","hasDynamicHelp":false,"multiple":false,"type":"option"},"custom-properties":{"description":"Задаваемые дополнительные поля","name":"custom-properties","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:update","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"users:update","apiMethod":"PUT","apiPath":"/users/{id}","defaultColumns":["id","title","first_name","last_name","email"],"isESM":true,"relativePath":["dist","commands","users","update.js"]},"users:update-avatar":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Загрузка аватара сотрудника","examples":["Загрузить аватар сотрудника:\n $ pachca users update-avatar","Удалить аватар сотрудника:\n $ pachca users remove-avatar"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"file":{"description":"Файл изображения для аватара","name":"file","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:update-avatar","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_avatar:write","apiMethod":"PUT","apiPath":"/users/{user_id}/avatar","defaultColumns":["image_url"],"isESM":true,"relativePath":["dist","commands","users","update-avatar.js"]},"users:update-status":{"aliases":[],"args":{"user_id":{"description":"Идентификатор пользователя (pachca users list)","name":"user_id","required":true}},"description":"Новый статус сотрудника","examples":["Управление статусом сотрудника:\n $ pachca users get-status","Управление статусом сотрудника:\n $ pachca users update-status","Управление статусом сотрудника:\n $ pachca users remove-status"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"emoji":{"description":"Emoji символ статуса","name":"emoji","hasDynamicHelp":false,"multiple":false,"type":"option"},"title":{"description":"Текст статуса","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"expires-at":{"description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","name":"expires-at","hasDynamicHelp":false,"multiple":false,"type":"option"},"is-away":{"description":"Режим «Нет на месте»","name":"is-away","allowNo":true,"type":"boolean"},"away-message":{"description":"Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях. (макс. 1024 символов)","name":"away-message","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"users:update-status","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"user_status:write","apiMethod":"PUT","apiPath":"/users/{user_id}/status","defaultColumns":["title","emoji","expires_at","is_away"],"requiredFlags":["emoji","title"],"isESM":true,"relativePath":["dist","commands","users","update-status.js"]},"version":{"aliases":[],"args":{},"description":"Версия CLI","examples":["<%= config.bin %> version"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"version","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"isESM":true,"relativePath":["dist","commands","version.js"]},"views:open":{"aliases":[],"args":{},"description":"Открытие представления","examples":["Показать интерактивную форму пользователю:\n $ pachca views open","Опрос сотрудников через форму:\n $ pachca views open","Форма заявки/запроса:\n $ pachca views open"],"flags":{"output":{"char":"o","description":"Output format: table, json, yaml, csv","name":"output","hasDynamicHelp":false,"multiple":false,"options":["table","json","yaml","csv"],"type":"option"},"columns":{"char":"c","description":"Columns to display (comma-separated)","name":"columns","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-header":{"description":"Hide table header","name":"no-header","allowNo":false,"type":"boolean"},"no-truncate":{"description":"Do not truncate values in table","name":"no-truncate","allowNo":false,"type":"boolean"},"profile":{"char":"p","description":"Profile to use for this command","name":"profile","hasDynamicHelp":false,"multiple":false,"type":"option"},"token":{"description":"Bearer token for this call (not saved)","name":"token","hasDynamicHelp":false,"multiple":false,"type":"option"},"quiet":{"char":"q","description":"Suppress output except errors","name":"quiet","allowNo":false,"type":"boolean"},"no-color":{"description":"Disable color output","name":"no-color","allowNo":false,"type":"boolean"},"verbose":{"char":"v","description":"Show HTTP request/response details","name":"verbose","allowNo":false,"type":"boolean"},"no-input":{"description":"Disable interactive prompts","name":"no-input","allowNo":false,"type":"boolean"},"dry-run":{"description":"Show HTTP request without sending","name":"dry-run","allowNo":false,"type":"boolean"},"timeout":{"description":"Request timeout in seconds","name":"timeout","hasDynamicHelp":false,"multiple":false,"type":"option"},"no-retry":{"description":"Disable auto-retry on 429/503","name":"no-retry","allowNo":false,"type":"boolean"},"json":{"description":"Output as JSON (alias for --output json)","hidden":true,"name":"json","allowNo":false,"type":"boolean"},"plain":{"description":"Plain output: TSV, no header, ID column first, no color (for scripts)","name":"plain","allowNo":false,"type":"boolean"},"title":{"description":"Заголовок представления (макс. 24 символов)","name":"title","hasDynamicHelp":false,"multiple":false,"type":"option"},"close-text":{"description":"Текст кнопки закрытия представления. Отображается только в десктоп-вебе. В мобильных приложениях (iOS/Android) кнопка закрытия — это крестик в шапке, и заданный текст там не показывается. (макс. 24 символов)","name":"close-text","hasDynamicHelp":false,"multiple":false,"type":"option"},"submit-text":{"description":"Текст кнопки отправки формы (макс. 24 символов)","name":"submit-text","hasDynamicHelp":false,"multiple":false,"type":"option"},"blocks":{"description":"Массив блоков представления","name":"blocks","hasDynamicHelp":false,"multiple":false,"type":"option"},"type":{"description":"Способ открытия представления","name":"type","hasDynamicHelp":false,"multiple":false,"options":["modal"],"type":"option"},"trigger-id":{"description":"Уникальный идентификатор события (полученный, например, в исходящем вебхуке о нажатии кнопки)","name":"trigger-id","hasDynamicHelp":false,"multiple":false,"type":"option"},"private-metadata":{"description":"Необязательная строка, которая будет отправлена в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для передачи в формате `JSON` какой то дополнительной информации вместе с заполненной пользователем формой. (макс. 3000 символов)","name":"private-metadata","hasDynamicHelp":false,"multiple":false,"type":"option"},"callback-id":{"description":"Необязательный идентификатор для распознавания этого представления, который будет отправлен в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для понимания, какую форму должен был заполнить пользователь. (макс. 255 символов)","name":"callback-id","hasDynamicHelp":false,"multiple":false,"type":"option"}},"hasDynamicHelp":false,"hiddenAliases":[],"id":"views:open","pluginAlias":"@pachca/cli","pluginName":"@pachca/cli","pluginType":"core","strict":true,"enableJsonFlag":false,"scope":"views:write","apiMethod":"POST","apiPath":"/views/open","requiredFlags":["title","blocks","type","trigger-id"],"isESM":true,"relativePath":["dist","commands","views","open.js"]}},"version":"0.0.0"} \ No newline at end of file diff --git a/packages/cli/src/commands/bots/create.ts b/packages/cli/src/commands/bots/create.ts index 7a5724a7..9eece53e 100644 --- a/packages/cli/src/commands/bots/create.ts +++ b/packages/cli/src/commands/bots/create.ts @@ -8,7 +8,8 @@ export default class BotsCreate extends BaseCommand { static override examples = [ "Создать бота через API и получить токен:\n $ pachca bots create", - "Настроить бота с исходящим вебхуком:\n $ pachca bots create" + "Настроить бота с исходящим вебхуком:\n $ pachca bots create", + "Найти и удалить бота:\n $ pachca bots list" ]; static scope = "bots:write"; @@ -65,6 +66,16 @@ export default class BotsCreate extends BaseCommand { description: "Сохранять историю событий бота для последующего получения через метод истории событий", allowNo: true, }), + 'who-can-add': Flags.string({ + description: "Кто может добавлять бота в чаты", + }), + 'can-edit': Flags.string({ + description: "Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.", + }), + 'single-chat': Flags.boolean({ + description: "Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется.", + allowNo: true, + }), }; async run(): Promise { @@ -106,6 +117,9 @@ export default class BotsCreate extends BaseCommand { link_preview_enabled: flags['link-preview-enabled'], ignore_self_messages: flags['ignore-self-messages'], events_history_enabled: flags['events-history-enabled'], + who_can_add: flags['who-can-add'], + can_edit: flags['can-edit'] ? this.parseJSON(flags['can-edit'], 'can-edit') : undefined, + single_chat: flags['single-chat'], } }; // Clean undefined fields const inner = body['webhook'] as Record; diff --git a/packages/cli/src/commands/bots/delete.ts b/packages/cli/src/commands/bots/delete.ts new file mode 100644 index 00000000..3154b9d6 --- /dev/null +++ b/packages/cli/src/commands/bots/delete.ts @@ -0,0 +1,58 @@ +// Auto-generated from openapi.yaml — DO NOT EDIT +import { Args, Flags } from '@oclif/core'; +import { BaseCommand } from '../../base-command.js'; +import * as clack from '@clack/prompts'; + +export default class BotsDelete extends BaseCommand { + static override description = "Удаление бота"; + + static override examples = [ + "Обновить Webhook URL бота:\n $ pachca bots update", + "Найти и удалить бота:\n $ pachca bots delete" + ]; + + static scope = "bots:write"; + static apiMethod = "DELETE"; + static apiPath = "/bots/{id}"; + + static override args = { + id: Args.integer({ + description: "Идентификатор бота (pachca bots list)", + required: true, + }), + }; + + static override flags = { + ...BaseCommand.baseFlags, + force: Flags.boolean({ + description: 'Пропустить подтверждение', + default: false, + }), + }; + + async run(): Promise { + const { args, flags } = await this.parse(BotsDelete); + this.parsedFlags = flags; + + if (!flags.force) { + if (!this.isInteractive()) { + this.validationError( + [{ message: 'Деструктивная операция требует флага --force', flag: 'force' }], + { type: 'PACHCA_DESTRUCTIVE_OP_ERROR', hint: "pachca bots delete --force" }, + ); + } + const confirm = await clack.confirm({ message: 'Вы уверены?' }); + if (clack.isCancel(confirm) || !confirm) { + process.stderr.write('Отменено.\n'); + this.exit(0); + } + } + + const { data } = await this.apiRequest({ + method: 'DELETE', + path: `/bots/${args.id}`, + }); + + this.success('Удалено'); + } +} diff --git a/packages/cli/src/commands/bots/get.ts b/packages/cli/src/commands/bots/get.ts index c062d06e..ac6817c3 100644 --- a/packages/cli/src/commands/bots/get.ts +++ b/packages/cli/src/commands/bots/get.ts @@ -6,7 +6,8 @@ export default class BotsGet extends BaseCommand { static override description = "Информация о боте"; static override examples = [ - "Обновить Webhook URL бота:\n $ pachca bots update" + "Обновить Webhook URL бота:\n $ pachca bots update", + "Найти и удалить бота:\n $ pachca bots delete" ]; static scope = "bots:read"; diff --git a/packages/cli/src/commands/bots/list.ts b/packages/cli/src/commands/bots/list.ts new file mode 100644 index 00000000..e15db98d --- /dev/null +++ b/packages/cli/src/commands/bots/list.ts @@ -0,0 +1,109 @@ +// Auto-generated from openapi.yaml — DO NOT EDIT +import { Args, Flags } from '@oclif/core'; +import { BaseCommand } from '../../base-command.js'; + +export default class BotsList extends BaseCommand { + static override description = "Список ботов"; + + static override examples = [ + "Создать бота через API и получить токен:\n $ pachca bots create", + "Настроить бота с исходящим вебхуком:\n $ pachca bots create", + "Найти и удалить бота:\n $ pachca bots list" + ]; + + static scope = "bots:read"; + static apiMethod = "GET"; + static apiPath = "/bots"; + static defaultColumns = ["id","webhook"]; + + static override args = { + + }; + + static override flags = { + ...BaseCommand.baseFlags, + 'query': Flags.string({ + description: "Поисковая фраза для фильтрации ботов по имени", + }), + limit: Flags.integer({ + description: 'Количество результатов на страницу', + }), + cursor: Flags.string({ + description: 'Курсор для следующей страницы', + }), + all: Flags.boolean({ + description: 'Загрузить все страницы автоматически', + default: false, + }), + }; + + async run(): Promise { + const { args, flags } = await this.parse(BotsList); + this.parsedFlags = flags; + + if (flags.all) { + // Auto-pagination + const allData: unknown[] = []; + let nextCursor: string | undefined = undefined; + let pages = 0; + const seenCursors = new Set(); + + while (pages < 500) { + const query: Record = { + query: flags['query'], + limit: flags.limit, + cursor: nextCursor, + }; + const response = await this.apiRequest({ method: 'GET', path: '/bots', query }); + const body = response.data as Record; + const items = body.data as unknown[]; + if (items) allData.push(...items); + const meta = body.meta as Record | undefined; + const paginate = meta?.paginate as Record | undefined; + nextCursor = paginate?.next_page as string | undefined; + pages++; + // Условие конца: списочные методы — has_next === false; методы поиска и /users?query= (без has_next) — пустой data + const hasNext = paginate?.has_next; + if (typeof hasNext === 'boolean') { + if (!hasNext) break; + } else if (!items || items.length === 0) { + break; + } + + if (process.stderr.isTTY) { + const total = (paginate as Record | undefined)?.total; + const progress = total ? `${allData.length} / ${total}` : String(allData.length); + process.stderr.write(`\r Загружено: ${progress}...`); + } + + if (!nextCursor) break; + if (seenCursors.has(nextCursor)) { + process.stderr.write('\n⚠ Обнаружен цикл пагинации, остановка.\n'); + break; + } + seenCursors.add(nextCursor); + } + + if (pages >= 500) { + process.stderr.write('\n⚠ Достигнут лимит 500 страниц.\n'); + } + if (process.stderr.isTTY) process.stderr.write('\n'); + this.output(allData); + return; + } + + const { data } = await this.apiRequest({ + method: 'GET', + path: '/bots', + query: { + query: flags['query'], + limit: flags.limit, + cursor: flags.cursor, + }, + }); + + const responseBody = data as Record; + const items = responseBody.data ?? responseBody; + this.output(items); + } +} diff --git a/packages/cli/src/commands/bots/update.ts b/packages/cli/src/commands/bots/update.ts index d3d4a594..0e6e5a1a 100644 --- a/packages/cli/src/commands/bots/update.ts +++ b/packages/cli/src/commands/bots/update.ts @@ -6,7 +6,8 @@ export default class BotsUpdate extends BaseCommand { static override description = "Редактирование бота"; static override examples = [ - "Обновить Webhook URL бота:\n $ pachca bots update" + "Обновить Webhook URL бота:\n $ pachca bots update", + "Найти и удалить бота:\n $ pachca bots delete" ]; static scope = "bots:write"; @@ -65,6 +66,12 @@ export default class BotsUpdate extends BaseCommand { description: "Сохранять историю событий бота для последующего получения через метод истории событий", allowNo: true, }), + 'who-can-add': Flags.string({ + description: "Кто может добавлять бота в чаты", + }), + 'can-edit': Flags.string({ + description: "Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.", + }), }; async run(): Promise { @@ -85,6 +92,8 @@ export default class BotsUpdate extends BaseCommand { link_preview_enabled: flags['link-preview-enabled'], ignore_self_messages: flags['ignore-self-messages'], events_history_enabled: flags['events-history-enabled'], + who_can_add: flags['who-can-add'], + can_edit: flags['can-edit'] ? this.parseJSON(flags['can-edit'], 'can-edit') : undefined, } }; // Clean undefined fields const inner = body['webhook'] as Record; diff --git a/packages/cli/src/commands/search/list-users.ts b/packages/cli/src/commands/search/list-users.ts index b1da222d..97b19d6b 100644 --- a/packages/cli/src/commands/search/list-users.ts +++ b/packages/cli/src/commands/search/list-users.ts @@ -27,7 +27,7 @@ export default class SearchListUsers extends BaseCommand { }), 'sort': Flags.string({ description: "Сортировка результатов", - options: ["by_score","alphabetical"], + options: ["by_score","alphabetical","creation"], }), 'order': Flags.string({ description: "Направление сортировки", diff --git a/packages/cli/src/commands/security/list.ts b/packages/cli/src/commands/security/list.ts index 4833a2fe..1c131812 100644 --- a/packages/cli/src/commands/security/list.ts +++ b/packages/cli/src/commands/security/list.ts @@ -31,7 +31,7 @@ export default class SecurityList extends BaseCommand { }), 'event-key': Flags.string({ description: "Фильтр по конкретному типу события", - options: ["user_login","user_logout","user_2fa_fail","user_2fa_success","user_created","user_deleted","user_role_changed","user_updated","tag_created","tag_deleted","user_added_to_tag","user_removed_from_tag","chat_created","chat_renamed","chat_permission_changed","user_chat_join","user_chat_leave","tag_added_to_chat","tag_removed_from_chat","message_updated","message_deleted","message_created","reaction_created","reaction_deleted","thread_created","access_token_created","access_token_updated","access_token_destroy","kms_encrypt","kms_decrypt","audit_events_accessed","dlp_violation_detected","search_users_api","search_chats_api","search_messages_api","bot_scopes_updated","bot_webhook_settings_updated","bot_token_recreated"], + options: ["user_login","user_logout","user_2fa_fail","user_2fa_success","user_created","user_deleted","user_role_changed","user_updated","tag_created","tag_deleted","user_added_to_tag","user_removed_from_tag","chat_created","chat_renamed","chat_permission_changed","user_chat_join","user_chat_leave","tag_added_to_chat","tag_removed_from_chat","message_updated","message_deleted","message_created","reaction_created","reaction_deleted","thread_created","access_token_created","access_token_updated","access_token_destroy","kms_encrypt","kms_decrypt","audit_events_accessed","dlp_violation_detected","search_users_api","search_chats_api","search_messages_api","bot_scopes_updated","bot_webhook_settings_updated","bot_token_recreated","bot_deleted"], }), 'actor-id': Flags.string({ description: "Идентификатор пользователя, выполнившего действие", diff --git a/packages/cli/src/data/alternatives.json b/packages/cli/src/data/alternatives.json index 1e2b8293..67e9d850 100644 --- a/packages/cli/src/data/alternatives.json +++ b/packages/cli/src/data/alternatives.json @@ -2,9 +2,11 @@ "security:list": "Журнал аудита событий", "bots:recreate-token-self": "Ротация собственного токена бота", "bots:update-webhook": "Саморегистрация вебхука бота", + "bots:list": "Список ботов", "bots:create": "Новый бот", "bots:get": "Информация о боте", "bots:update": "Редактирование бота", + "bots:delete": "Удаление бота", "bots:recreate-token": "Ротация токена бота", "chats:create": "Новый чат", "chats:list": "Список чатов", diff --git a/packages/cli/src/data/changelog.json b/packages/cli/src/data/changelog.json index 59e4bb51..2f76a1ca 100644 --- a/packages/cli/src/data/changelog.json +++ b/packages/cli/src/data/changelog.json @@ -1,4 +1,35 @@ [ + { + "version": "2026.7.0", + "date": "7 июля 2026", + "changes": [ + { + "type": "+", + "command": "bots list", + "description": "Новая команда — список ботов с поиском по имени (`--query`)" + }, + { + "type": "+", + "command": "bots delete", + "description": "Новая команда — удаление бота по его `id`" + }, + { + "type": "+", + "command": "bots create", + "description": "Права доступа бота — параметры `who-can-add` (кто может добавлять бота в чаты), `can-edit` (роли, редактирующие настройки) и `single-chat` (только один чат)" + }, + { + "type": "+", + "command": "bots update", + "description": "Права доступа бота — параметры `who-can-add` (кто может добавлять бота в чаты) и `can-edit` (роли, редактирующие настройки)" + }, + { + "type": "+", + "command": "search users", + "description": "Значение сортировки `--sort creation` — по дате создания" + } + ] + }, { "version": "2026.6.3", "date": "24 июня 2026", diff --git a/packages/cli/src/data/commands.json b/packages/cli/src/data/commands.json index caa52b9f..444be6e3 100644 --- a/packages/cli/src/data/commands.json +++ b/packages/cli/src/data/commands.json @@ -208,6 +208,47 @@ "type": "boolean", "required": false, "description": "Сохранять историю событий бота для последующего получения через метод истории событий" + }, + { + "name": "who-can-add", + "type": "option", + "required": false, + "description": "Кто может добавлять бота в чаты" + }, + { + "name": "can-edit", + "type": "option", + "required": false, + "description": "Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель." + }, + { + "name": "single-chat", + "type": "boolean", + "required": false, + "description": "Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется." + } + ] + }, + { + "command": "pachca bots delete", + "summary": "Удаление бота", + "method": "DELETE", + "path": "/bots/{id}", + "scope": "bots:write", + "plan": null, + "args": [ + { + "name": "id", + "required": true, + "description": "Идентификатор бота (pachca bots list)" + } + ], + "flags": [ + { + "name": "force", + "type": "boolean", + "required": false, + "description": "Пропустить подтверждение" } ] }, @@ -227,6 +268,40 @@ ], "flags": [] }, + { + "command": "pachca bots list", + "summary": "Список ботов", + "method": "GET", + "path": "/bots", + "scope": "bots:read", + "plan": null, + "flags": [ + { + "name": "query", + "type": "option", + "required": false, + "description": "Поисковая фраза для фильтрации ботов по имени" + }, + { + "name": "limit", + "type": "option", + "required": false, + "description": "Количество результатов на страницу" + }, + { + "name": "cursor", + "type": "option", + "required": false, + "description": "Курсор для следующей страницы" + }, + { + "name": "all", + "type": "boolean", + "required": false, + "description": "Загрузить все страницы автоматически" + } + ] + }, { "command": "pachca bots list-events", "summary": "История событий", @@ -395,6 +470,18 @@ "type": "boolean", "required": false, "description": "Сохранять историю событий бота для последующего получения через метод истории событий" + }, + { + "name": "who-can-add", + "type": "option", + "required": false, + "description": "Кто может добавлять бота в чаты" + }, + { + "name": "can-edit", + "type": "option", + "required": false, + "description": "Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель." } ] }, @@ -2030,7 +2117,8 @@ "description": "Сортировка результатов", "options": [ "by_score", - "alphabetical" + "alphabetical", + "creation" ] }, { @@ -2149,7 +2237,8 @@ "search_messages_api", "bot_scopes_updated", "bot_webhook_settings_updated", - "bot_token_recreated" + "bot_token_recreated", + "bot_deleted" ] }, { diff --git a/packages/cli/src/data/endpoints.json b/packages/cli/src/data/endpoints.json index e137b098..5b07a1a5 100644 --- a/packages/cli/src/data/endpoints.json +++ b/packages/cli/src/data/endpoints.json @@ -1 +1 @@ -[{"method":"GET","path":"/audit_events","summary":"Журнал аудита событий","scope":"audit_events:read","plan":"corporation","auth":true,"paginated":true,"command":"pachca security list","docLink":"https://dev.pachca.com/api/security/list","describe":"# GET /audit_events — Журнал аудита событий\n\n> **Скоуп:** `audit_events:read`\n\n> **Тариф:** Корпорация\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `start_time` — query: Начальная метка времени (включительно)\n- `end_time` — query: Конечная метка времени (исключительно)\n- `event_key` — query: Фильтр по конкретному типу события\n- `actor_id` — query: Идентификатор пользователя, выполнившего действие\n- `actor_type` — query: Тип актора\n- `entity_id` — query: Идентификатор затронутой сущности\n- `entity_type` — query: Тип сущности\n- `limit` — query: Количество записей для возврата\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca security list \\\n --start-time=2025-05-01T09:11:00Z \\\n --end-time=2025-05-02T09:11:00Z \\\n --event-key=user_login \\\n --actor-id=98765 \\\n --actor-type=User \\\n --entity-id=98765 \\\n --entity-type=User \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/security/list\nПолная справка: `pachca api GET /audit_events --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/audit_events","description":"Журнал аудита событий\n\nМетод для получения логов событий на основе указанных фильтров.","parameters":[{"name":"start_time","in":"query","description":"Начальная метка времени (включительно)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-01T09:11:00Z"},"example":"2025-05-01T09:11:00Z","explode":false},{"name":"end_time","in":"query","description":"Конечная метка времени (исключительно)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-02T09:11:00Z"},"example":"2025-05-02T09:11:00Z","explode":false},{"name":"event_key","in":"query","description":"Фильтр по конкретному типу события","required":false,"schema":{"type":"string","description":"Тип аудит-события","enum":["user_login","user_logout","user_2fa_fail","user_2fa_success","user_created","user_deleted","user_role_changed","user_updated","tag_created","tag_deleted","user_added_to_tag","user_removed_from_tag","chat_created","chat_renamed","chat_permission_changed","user_chat_join","user_chat_leave","tag_added_to_chat","tag_removed_from_chat","message_updated","message_deleted","message_created","reaction_created","reaction_deleted","thread_created","access_token_created","access_token_updated","access_token_destroy","kms_encrypt","kms_decrypt","audit_events_accessed","dlp_violation_detected","search_users_api","search_chats_api","search_messages_api","bot_scopes_updated","bot_webhook_settings_updated","bot_token_recreated"],"x-enum-descriptions":{"user_login":"Пользователь успешно вошел в систему","user_logout":"Пользователь вышел из системы","user_2fa_fail":"Неудачная попытка двухфакторной аутентификации","user_2fa_success":"Успешная двухфакторная аутентификация","user_created":"Создана новая учетная запись пользователя","user_deleted":"Учетная запись пользователя удалена","user_role_changed":"Роль пользователя была изменена","user_updated":"Данные пользователя обновлены","tag_created":"Создан новый тег","tag_deleted":"Тег удален","user_added_to_tag":"Пользователь добавлен в тег","user_removed_from_tag":"Пользователь удален из тега","chat_created":"Создан новый чат","chat_renamed":"Чат переименован","chat_permission_changed":"Изменены права доступа к чату","user_chat_join":"Пользователь присоединился к чату","user_chat_leave":"Пользователь покинул чат","tag_added_to_chat":"Тег добавлен в чат","tag_removed_from_chat":"Тег удален из чата","message_updated":"Сообщение отредактировано","message_deleted":"Сообщение удалено","message_created":"Сообщение создано","reaction_created":"Реакция добавлена","reaction_deleted":"Реакция удалена","thread_created":"Тред создан","access_token_created":"Создан новый токен доступа","access_token_updated":"Токен доступа обновлен","access_token_destroy":"Токен доступа удален","kms_encrypt":"Данные зашифрованы","kms_decrypt":"Данные расшифрованы","audit_events_accessed":"Доступ к журналам аудита получен","dlp_violation_detected":"Срабатывание правила DLP-системы","search_users_api":"Поиск сотрудников через API","search_chats_api":"Поиск чатов через API","search_messages_api":"Поиск сообщений через API","bot_scopes_updated":"Изменены скоупы токена бота","bot_webhook_settings_updated":"Изменены настройки исходящего вебхука бота","bot_token_recreated":"Токен бота перевыпущен (ротация)"},"example":"user_login","$ref":"#/components/schemas/AuditEventKey"},"example":"user_login","explode":false},{"name":"actor_id","in":"query","description":"Идентификатор пользователя, выполнившего действие","required":false,"schema":{"type":"string","example":"98765"},"example":"98765","explode":false},{"name":"actor_type","in":"query","description":"Тип актора","required":false,"schema":{"type":"string","example":"User"},"example":"User","explode":false},{"name":"entity_id","in":"query","description":"Идентификатор затронутой сущности","required":false,"schema":{"type":"string","example":"98765"},"example":"98765","explode":false},{"name":"entity_type","in":"query","description":"Тип сущности","required":false,"schema":{"type":"string","example":"User"},"example":"User","explode":false},{"name":"limit","in":"query","description":"Количество записей для возврата","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Событие аудита","required":["id","created_at","event_key","entity_id","entity_type","actor_id","actor_type","details","ip_address","user_agent"],"properties":{"id":{"type":"string","description":"Уникальный идентификатор события","example":"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"},"event_key":{"description":"Ключ типа события","example":"user_login","allOf":[{"type":"string","description":"Тип аудит-события","enum":["user_login","user_logout","user_2fa_fail","user_2fa_success","user_created","user_deleted","user_role_changed","user_updated","tag_created","tag_deleted","user_added_to_tag","user_removed_from_tag","chat_created","chat_renamed","chat_permission_changed","user_chat_join","user_chat_leave","tag_added_to_chat","tag_removed_from_chat","message_updated","message_deleted","message_created","reaction_created","reaction_deleted","thread_created","access_token_created","access_token_updated","access_token_destroy","kms_encrypt","kms_decrypt","audit_events_accessed","dlp_violation_detected","search_users_api","search_chats_api","search_messages_api","bot_scopes_updated","bot_webhook_settings_updated","bot_token_recreated"],"x-enum-descriptions":{"user_login":"Пользователь успешно вошел в систему","user_logout":"Пользователь вышел из системы","user_2fa_fail":"Неудачная попытка двухфакторной аутентификации","user_2fa_success":"Успешная двухфакторная аутентификация","user_created":"Создана новая учетная запись пользователя","user_deleted":"Учетная запись пользователя удалена","user_role_changed":"Роль пользователя была изменена","user_updated":"Данные пользователя обновлены","tag_created":"Создан новый тег","tag_deleted":"Тег удален","user_added_to_tag":"Пользователь добавлен в тег","user_removed_from_tag":"Пользователь удален из тега","chat_created":"Создан новый чат","chat_renamed":"Чат переименован","chat_permission_changed":"Изменены права доступа к чату","user_chat_join":"Пользователь присоединился к чату","user_chat_leave":"Пользователь покинул чат","tag_added_to_chat":"Тег добавлен в чат","tag_removed_from_chat":"Тег удален из чата","message_updated":"Сообщение отредактировано","message_deleted":"Сообщение удалено","message_created":"Сообщение создано","reaction_created":"Реакция добавлена","reaction_deleted":"Реакция удалена","thread_created":"Тред создан","access_token_created":"Создан новый токен доступа","access_token_updated":"Токен доступа обновлен","access_token_destroy":"Токен доступа удален","kms_encrypt":"Данные зашифрованы","kms_decrypt":"Данные расшифрованы","audit_events_accessed":"Доступ к журналам аудита получен","dlp_violation_detected":"Срабатывание правила DLP-системы","search_users_api":"Поиск сотрудников через API","search_chats_api":"Поиск чатов через API","search_messages_api":"Поиск сообщений через API","bot_scopes_updated":"Изменены скоупы токена бота","bot_webhook_settings_updated":"Изменены настройки исходящего вебхука бота","bot_token_recreated":"Токен бота перевыпущен (ротация)"},"$ref":"#/components/schemas/AuditEventKey"}]},"entity_id":{"type":"string","description":"Идентификатор затронутой сущности","example":"98765"},"entity_type":{"type":"string","description":"Тип затронутой сущности","example":"User"},"actor_id":{"type":"string","description":"Идентификатор пользователя, выполнившего действие","example":"98765"},"actor_type":{"type":"string","description":"Тип актора","example":"User"},"details":{"description":"Дополнительные детали события. Структура зависит от значения event_key — см. описания значений поля event_key. Для событий без деталей возвращается пустой объект","allOf":[{"description":"Дополнительные детали события аудита. Структура зависит от значения event_key","anyOf":[{"type":"object","description":"Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated","$ref":"#/components/schemas/AuditDetailsEmpty"},{"type":"object","description":"При: user_updated","required":["changed_attrs"],"properties":{"changed_attrs":{"type":"array","description":"Список изменённых полей","items":{"type":"string"}}},"$ref":"#/components/schemas/AuditDetailsUserUpdated"},{"type":"object","description":"При: user_role_changed","required":["new_company_role","previous_company_role","initiator_id"],"properties":{"new_company_role":{"type":"string","description":"Новая роль"},"previous_company_role":{"type":"string","description":"Предыдущая роль"},"initiator_id":{"type":"integer","format":"int32","description":"Идентификатор инициатора"}},"$ref":"#/components/schemas/AuditDetailsRoleChanged"},{"type":"object","description":"При: tag_created, tag_deleted","required":["name"],"properties":{"name":{"type":"string","description":"Название тега"}},"$ref":"#/components/schemas/AuditDetailsTagName"},{"type":"object","description":"При: user_added_to_tag, user_removed_from_tag, user_chat_leave","required":["initiator_id"],"properties":{"initiator_id":{"type":"integer","format":"int32","description":"Идентификатор инициатора действия"}},"$ref":"#/components/schemas/AuditDetailsInitiator"},{"type":"object","description":"При: user_chat_join","required":["inviter_id"],"properties":{"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор пригласившего"}},"$ref":"#/components/schemas/AuditDetailsInviter"},{"type":"object","description":"При: chat_renamed","required":["old_name","new_name"],"properties":{"old_name":{"type":"string","description":"Прежнее название чата"},"new_name":{"type":"string","description":"Новое название чата"}},"$ref":"#/components/schemas/AuditDetailsChatRenamed"},{"type":"object","description":"При: chat_permission_changed","required":["public_access"],"properties":{"public_access":{"type":"boolean","description":"Публичный доступ"}},"$ref":"#/components/schemas/AuditDetailsChatPermission"},{"type":"object","description":"При: tag_added_to_chat","required":["chat_id","tag_name"],"properties":{"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата"},"tag_name":{"type":"string","description":"Название тега"}},"$ref":"#/components/schemas/AuditDetailsTagChat"},{"type":"object","description":"При: tag_removed_from_chat","required":["chat_id"],"properties":{"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата"}},"$ref":"#/components/schemas/AuditDetailsChatId"},{"type":"object","description":"При: access_token_created, access_token_updated, access_token_destroy","required":["scopes"],"properties":{"scopes":{"type":"array","description":"Скоупы токена","items":{"type":"string"}}},"$ref":"#/components/schemas/AuditDetailsTokenScopes"},{"type":"object","description":"При: kms_encrypt, kms_decrypt","required":["chat_id","message_id","reason"],"properties":{"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата"},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения"},"reason":{"type":"string","description":"Причина операции"}},"$ref":"#/components/schemas/AuditDetailsKms"},{"type":"object","description":"При: dlp_violation_detected","required":["dlp_rule_id","dlp_rule_name","message_id","chat_id","user_id","action_message","conditions_matched"],"properties":{"dlp_rule_id":{"type":"integer","format":"int32","description":"Идентификатор правила DLP"},"dlp_rule_name":{"type":"string","description":"Название правила DLP"},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения"},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя"},"action_message":{"type":"string","description":"Описание действия. `null`, если у действия правила текст не задан.","nullable":true},"conditions_matched":{"type":"boolean","description":"Результат проверки условий правила (true — условия сработали)"}},"$ref":"#/components/schemas/AuditDetailsDlp"},{"type":"object","description":"При: search_users_api, search_chats_api, search_messages_api","required":["search_type","query_present","cursor_present","limit","filters"],"properties":{"search_type":{"type":"string","description":"Тип поиска"},"query_present":{"type":"boolean","description":"Указан ли поисковый запрос"},"cursor_present":{"type":"boolean","description":"Использован ли курсор"},"limit":{"type":"integer","format":"int32","description":"Количество возвращённых результатов"},"filters":{"type":"object","description":"Применённые фильтры. Возможные ключи зависят от типа поиска: order, sort, created_from, created_to, company_roles (users), active, chat_subtype, personal (chats), chat_ids, user_ids (messages)","additionalProperties":{}}},"$ref":"#/components/schemas/AuditDetailsSearch"},{"type":"object","description":"При: bot_scopes_updated","required":["added_scopes","removed_scopes"],"properties":{"added_scopes":{"type":"array","description":"Скоупы, добавленные токену бота","items":{"type":"string"}},"removed_scopes":{"type":"array","description":"Скоупы, отозванные у токена бота","items":{"type":"string"}}},"$ref":"#/components/schemas/AuditDetailsBotScopes"},{"type":"object","description":"При: bot_webhook_settings_updated","required":["changes"],"properties":{"changes":{"type":"object","description":"Изменённые настройки вебхука. Ключ — имя настройки (outgoing_url, ignore_self_messages, events_history_enabled), значение — объект с полями previous (прежнее значение) и new (новое значение)","additionalProperties":{}}},"$ref":"#/components/schemas/AuditDetailsBotWebhookSettings"}],"$ref":"#/components/schemas/AuditEventDetailsUnion"}]},"ip_address":{"type":"string","description":"IP-адрес, с которого было выполнено действие","example":"192.168.1.100"},"user_agent":{"type":"string","description":"User agent клиента","example":"Pachca/3.60.0 (co.staply.pachca; build:15; iOS 18.5.0) Alamofire/5.0.0"}},"$ref":"#/components/schemas/AuditEvent"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"audit_events:read","plan":"corporation","scopeRoles":["owner"]},"paginated":true},"docs":"# Журнал аудита событий\n\n**Метод**: `GET`\n\n**Путь**: `/audit_events`\n\n> **Скоуп:** `audit_events:read`\n\n> **Внимание:** Доступно только на тарифе **Корпорация**\n\nМетод для получения логов событий на основе указанных фильтров.\n\n## Параметры\n\n### Query параметры\n\n- `start_time: date-time` — Начальная метка времени (включительно)\n- `end_time: date-time` — Конечная метка времени (исключительно)\n- `event_key: string` — Фильтр по конкретному типу события\n Значения: `user_login`, `user_logout`, `user_2fa_fail`, `user_2fa_success`, `user_created`, `user_deleted`, `user_role_changed`, `user_updated`, `tag_created`, `tag_deleted`, `user_added_to_tag`, `user_removed_from_tag`, `chat_created`, `chat_renamed`, `chat_permission_changed`, `user_chat_join`, `user_chat_leave`, `tag_added_to_chat`, `tag_removed_from_chat`, `message_updated`, `message_deleted`, `message_created`, `reaction_created`, `reaction_deleted`, `thread_created`, `access_token_created`, `access_token_updated`, `access_token_destroy`, `kms_encrypt`, `kms_decrypt`, `audit_events_accessed`, `dlp_violation_detected`, `search_users_api`, `search_chats_api`, `search_messages_api`, `bot_scopes_updated`, `bot_webhook_settings_updated`, `bot_token_recreated`\n- `actor_id: string` — Идентификатор пользователя, выполнившего действие\n- `actor_type: string` — Тип актора\n- `entity_id: string` — Идентификатор затронутой сущности\n- `entity_type: string` — Тип сущности\n- `limit: integer, int32` (default: 50) — Количество записей для возврата\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/audit_events?start_time=2025-05-01T09:11:00Z&end_time=2025-05-02T09:11:00Z&event_key=user_login&actor_id=98765&actor_type=User&entity_id=98765&entity_type=User&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: string` (required) — Уникальный идентификатор события. Пример: `\"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14\"`\n - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `event_key: string` (required) — Ключ типа события\n Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация)\n - `entity_id: string` (required) — Идентификатор затронутой сущности. Пример: `\"98765\"`\n - `entity_type: string` (required) — Тип затронутой сущности. Пример: `\"User\"`\n - `actor_id: string` (required) — Идентификатор пользователя, выполнившего действие. Пример: `\"98765\"`\n - `actor_type: string` (required) — Тип актора. Пример: `\"User\"`\n - `details: anyOf` (required) — Дополнительные детали события. Структура зависит от значения event_key — см. описания значений поля event_key. Для событий без деталей возвращается пустой объект\n **Возможные варианты:**\n\n - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated\n - **AuditDetailsUserUpdated**: При: user_updated\n - `changed_attrs: array of string` (required) — Список изменённых полей\n - **AuditDetailsRoleChanged**: При: user_role_changed\n - `new_company_role: string` (required) — Новая роль\n - `previous_company_role: string` (required) — Предыдущая роль\n - `initiator_id: integer, int32` (required) — Идентификатор инициатора\n - **AuditDetailsTagName**: При: tag_created, tag_deleted\n - `name: string` (required) — Название тега\n - **AuditDetailsInitiator**: При: user_added_to_tag, user_removed_from_tag, user_chat_leave\n - `initiator_id: integer, int32` (required) — Идентификатор инициатора действия\n - **AuditDetailsInviter**: При: user_chat_join\n - `inviter_id: integer, int32` (required) — Идентификатор пригласившего\n - **AuditDetailsChatRenamed**: При: chat_renamed\n - `old_name: string` (required) — Прежнее название чата\n - `new_name: string` (required) — Новое название чата\n - **AuditDetailsChatPermission**: При: chat_permission_changed\n - `public_access: boolean` (required) — Публичный доступ\n - **AuditDetailsTagChat**: При: tag_added_to_chat\n - `chat_id: integer, int32` (required) — Идентификатор чата\n - `tag_name: string` (required) — Название тега\n - **AuditDetailsChatId**: При: tag_removed_from_chat\n - `chat_id: integer, int32` (required) — Идентификатор чата\n - **AuditDetailsTokenScopes**: При: access_token_created, access_token_updated, access_token_destroy\n - `scopes: array of string` (required) — Скоупы токена\n - **AuditDetailsKms**: При: kms_encrypt, kms_decrypt\n - `chat_id: integer, int32` (required) — Идентификатор чата\n - `message_id: integer, int32` (required) — Идентификатор сообщения\n - `reason: string` (required) — Причина операции\n - **AuditDetailsDlp**: При: dlp_violation_detected\n - `dlp_rule_id: integer, int32` (required) — Идентификатор правила DLP\n - `dlp_rule_name: string` (required) — Название правила DLP\n - `message_id: integer, int32` (required) — Идентификатор сообщения\n - `chat_id: integer, int32` (required) — Идентификатор чата\n - `user_id: integer, int32` (required) — Идентификатор пользователя\n - `action_message: string` (required) — Описание действия. `null`, если у действия правила текст не задан.\n - `conditions_matched: boolean` (required) — Результат проверки условий правила (true — условия сработали)\n - **AuditDetailsSearch**: При: search_users_api, search_chats_api, search_messages_api\n - `search_type: string` (required) — Тип поиска\n - `query_present: boolean` (required) — Указан ли поисковый запрос\n - `cursor_present: boolean` (required) — Использован ли курсор\n - `limit: integer, int32` (required) — Количество возвращённых результатов\n - `filters: Record` (required) — Применённые фильтры. Возможные ключи зависят от типа поиска: order, sort, created_from, created_to, company_roles (users), active, chat_subtype, personal (chats), chat_ids, user_ids (messages)\n **Структура значений Record:**\n - Тип значения: `any`\n - **AuditDetailsBotScopes**: При: bot_scopes_updated\n - `added_scopes: array of string` (required) — Скоупы, добавленные токену бота\n - `removed_scopes: array of string` (required) — Скоупы, отозванные у токена бота\n - **AuditDetailsBotWebhookSettings**: При: bot_webhook_settings_updated\n - `changes: Record` (required) — Изменённые настройки вебхука. Ключ — имя настройки (outgoing_url, ignore_self_messages, events_history_enabled), значение — объект с полями previous (прежнее значение) и new (новое значение)\n **Структура значений Record:**\n - Тип значения: `any`\n - `ip_address: string` (required) — IP-адрес, с которого было выполнено действие. Пример: `\"192.168.1.100\"`\n - `user_agent: string` (required) — User agent клиента. Пример: `\"Pachca/3.60.0 (co.staply.pachca; build:15; iOS 18.5.0) Alamofire/5.0.0\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": \"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14\",\n \"created_at\": \"2025-05-15T14:30:00.000Z\",\n \"event_key\": \"user_login\",\n \"entity_id\": \"98765\",\n \"entity_type\": \"User\",\n \"actor_id\": \"98765\",\n \"actor_type\": \"User\",\n \"details\": null,\n \"ip_address\": \"192.168.1.100\",\n \"user_agent\": \"Pachca/3.60.0 (co.staply.pachca; build:15; iOS 18.5.0) Alamofire/5.0.0\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/bot/recreate_token","summary":"Ротация собственного токена бота","scope":"bot_self:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots recreate-token-self","docLink":"https://dev.pachca.com/api/bots/recreate-token-self","describe":"# POST /bot/recreate_token — Ротация собственного токена бота\n\n> **Скоуп:** `bot_self:write`\n\n## Эквивалентная команда\n\n```bash\npachca bots recreate-token-self \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/recreate-token-self\nПолная справка: `pachca api POST /bot/recreate_token --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/bot/recreate_token","description":"Ротация собственного токена бота\n\nМетод позволяет боту сгенерировать себе новый `access_token` своим же токеном — без участия администратора и без знания собственного `id`. Ротируется токен того бота, которому принадлежит токен запроса.\n\nТокен, которым выполнен запрос, инвалидируется сразу. Новый токен возвращается в ответе один раз — обязательно сохраните его, иначе бот потеряет доступ к API.","parameters":[],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры созданного бота","required":["id","webhook","access_token"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false}},"$ref":"#/components/schemas/BotWebhook"}]},"access_token":{"type":"string","description":"Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.","example":"bm90X2FfcmVhbF90b2tlbg"}},"$ref":"#/components/schemas/BotCreateResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false},"access_token":"bm90X2FfcmVhbF90b2tlbg"}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bot_self:write","scopeRoles":["bot"]},"paginated":false},"docs":"# Ротация собственного токена бота\n\n**Метод**: `POST`\n\n**Путь**: `/bot/recreate_token`\n\n> **Скоуп:** `bot_self:write`\n\nМетод позволяет боту сгенерировать себе новый `access_token` своим же токеном — без участия администратора и без знания собственного `id`. Ротируется токен того бота, которому принадлежит токен запроса.\n\nТокен, которым выполнен запрос, инвалидируется сразу. Новый токен возвращается в ответе один раз — обязательно сохраните его, иначе бот потеряет доступ к API.\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/bot/recreate_token\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры созданного бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `\"bm90X2FfcmVhbF90b2tlbg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false\n },\n \"access_token\": \"bm90X2FfcmVhbF90b2tlbg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/bot/webhook","summary":"Саморегистрация вебхука бота","scope":"bot_self:webhook:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots update-webhook","docLink":"https://dev.pachca.com/api/bots/update-webhook","describe":"# PUT /bot/webhook — Саморегистрация вебхука бота\n\n> **Скоуп:** `bot_self:webhook:write`\n\n## Тело запроса\n\n- `webhook: object` (required) — Объект параметров вебхука\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пустая строка отключает вебхук.\n\n## Эквивалентная команда\n\n```bash\npachca bots update-webhook \\\n --outgoing-url=https://www.website.com/tasks/new \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/update-webhook\nПолная справка: `pachca api PUT /bot/webhook --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/bot/webhook","description":"Саморегистрация вебхука бота\n\nМетод позволяет боту самостоятельно изменить `URL` своего исходящего вебхука своим же токеном — без участия администратора и без знания собственного `id`. Меняется вебхук того бота, которому принадлежит токен. Чтобы отключить вебхук, передайте пустую строку в `outgoing_url`.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на саморегистрацию вебхука бота","required":["webhook"],"properties":{"webhook":{"type":"object","description":"Объект параметров вебхука","required":["outgoing_url"],"properties":{"outgoing_url":{"type":"string","description":"URL исходящего вебхука. Пустая строка отключает вебхук.","example":"https://www.website.com/tasks/new"}}}},"$ref":"#/components/schemas/BotWebhookSelfUpdateRequest"},"example":{"webhook":{"outgoing_url":"https://www.website.com/tasks/new"}}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры бота","required":["id","webhook"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false}},"$ref":"#/components/schemas/BotWebhook"}]}},"$ref":"#/components/schemas/BotResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bot_self:webhook:write","scopeRoles":["bot"]},"paginated":false},"docs":"# Саморегистрация вебхука бота\n\n**Метод**: `PUT`\n\n**Путь**: `/bot/webhook`\n\n> **Скоуп:** `bot_self:webhook:write`\n\nМетод позволяет боту самостоятельно изменить `URL` своего исходящего вебхука своим же токеном — без участия администратора и без знания собственного `id`. Меняется вебхук того бота, которому принадлежит токен. Чтобы отключить вебхук, передайте пустую строку в `outgoing_url`.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `webhook: object` (required) — Объект параметров вебхука\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пустая строка отключает вебхук.. Пример: `\"https://www.website.com/tasks/new\"`\n\n### Пример\n\n```json\n{\n \"webhook\": {\n \"outgoing_url\": \"https://www.website.com/tasks/new\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/bot/webhook\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"webhook\": {\n \"outgoing_url\": \"https://www.website.com/tasks/new\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/bots","summary":"Новый бот","scope":"bots:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots create","docLink":"https://dev.pachca.com/api/bots/create","describe":"# POST /bots — Новый бот\n\n> **Скоуп:** `bots:write`\n\n## Тело запроса\n\n- `webhook: object` (required) — Объект параметров вебхука создаваемого бота\n - `name: string` (required) — Имя бота\n - `nickname: string` — Никнейм бота. Должен заканчиваться на `_bot`.\n - `outgoing_url: string` — URL исходящего вебхука\n - `events: array of string` — События, на которые подписан бот\n - `trigger_on: string` — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` — Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands\n - `scopes: array of string` — Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.\n - `template: string` — Шаблон форматирования входящего вебхука\n - `template_engine: string` — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` — Название поля проверки для верификации входящего вебхука\n - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука\n - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом\n - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий\n\n## Эквивалентная команда\n\n```bash\npachca bots create \\\n --name=\"Бот задач\" \\\n --nickname=tasks_bot \\\n --outgoing-url=https://www.website.com/tasks/new \\\n --events=message_new \\\n --commands=/task,/help \\\n --scopes=messages:create \\\n --template=\"Заказ от {{ client }} на сумму {{ amount }} ₽\" \\\n --challenge-key=challenge \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/create\nПолная справка: `pachca api POST /bots --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/bots","description":"Новый бот\n\nМетод для создания бота и получения его `access_token`.\n\nПри создании вы получите `access_token` бота — сразу сохраните его. Повторно получить токен вы сможете только через интерфейс (вкладка «API» настроек бота).","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание бота","required":["webhook"],"properties":{"webhook":{"type":"object","description":"Объект параметров вебхука создаваемого бота","required":["name"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота. Должен заканчиваться на `_bot`.","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new"},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","default":"commands","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands","example":["/task","/help"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука","example":"Заказ от {{ client }} на сумму {{ amount }} ₽"},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","default":"liquid","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука","example":"challenge"},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","default":true,"example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","default":false,"example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","default":false,"example":false}}}},"$ref":"#/components/schemas/BotCreateRequest"},"example":{"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"]}}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры созданного бота","required":["id","webhook","access_token"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false}},"$ref":"#/components/schemas/BotWebhook"}]},"access_token":{"type":"string","description":"Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.","example":"bm90X2FfcmVhbF90b2tlbg"}},"$ref":"#/components/schemas/BotCreateResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false},"access_token":"bm90X2FfcmVhbF90b2tlbg"}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"bots:write","scopeRoles":["owner","admin","user"]},"paginated":false},"docs":"# Новый бот\n\n**Метод**: `POST`\n\n**Путь**: `/bots`\n\n> **Скоуп:** `bots:write`\n\nМетод для создания бота и получения его `access_token`.\n\nПри создании вы получите `access_token` бота — сразу сохраните его. Повторно получить токен вы сможете только через интерфейс (вкладка «API» настроек бота).\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `webhook: object` (required) — Объект параметров вебхука создаваемого бота\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` — Никнейм бота. Должен заканчиваться на `_bot`.. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` — Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands. Пример: `[\"/task\",\"/help\"]`\n - `scopes: array of string` — Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.. Пример: `[\"messages:create\"]`\n - `template: string` — Шаблон форматирования входящего вебхука. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` — Название поля проверки для верификации входящего вебхука. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n\n### Пример\n\n```json\n{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/bots\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\"\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры созданного бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `\"bm90X2FfcmVhbF90b2tlbg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false\n },\n \"access_token\": \"bm90X2FfcmVhbF90b2tlbg\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/bots/{id}","summary":"Информация о боте","scope":"bots:read","plan":null,"auth":true,"paginated":false,"command":"pachca bots get","docLink":"https://dev.pachca.com/api/bots/get","describe":"# GET /bots/{id} — Информация о боте\n\n> **Скоуп:** `bots:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор бота\n\n## Эквивалентная команда\n\n```bash\npachca bots get 1738816 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/get\nПолная справка: `pachca api GET /bots/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/bots/{id}","description":"Информация о боте\n\nМетод для получения параметров бота по его `id`.","parameters":[{"name":"id","in":"path","description":"Идентификатор бота","required":true,"schema":{"type":"integer","format":"int32","example":1738816},"example":1738816}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры бота","required":["id","webhook"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false}},"$ref":"#/components/schemas/BotWebhook"}]}},"$ref":"#/components/schemas/BotResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bots:read","scopeRoles":["owner","admin","user"]},"paginated":false},"docs":"# Информация о боте\n\n**Метод**: `GET`\n\n**Путь**: `/bots/{id}`\n\n> **Скоуп:** `bots:read`\n\nМетод для получения параметров бота по его `id`.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор бота\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/bots/1738816\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false\n }\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/bots/{id}","summary":"Редактирование бота","scope":"bots:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots update","docLink":"https://dev.pachca.com/api/bots/update","describe":"# PUT /bots/{id} — Редактирование бота\n\n> **Скоуп:** `bots:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор бота\n\n## Тело запроса\n\n- `webhook: object` (required) — Объект параметров вебхука редактируемого бота\n - `name: string` — Имя бота\n - `nickname: string` — Никнейм бота. Должен заканчиваться на `_bot`.\n - `outgoing_url: string` — URL исходящего вебхука\n - `events: array of string` — События, на которые подписан бот\n - `trigger_on: string` — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` — Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands\n - `scopes: array of string` — Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.\n - `template: string` — Шаблон форматирования входящего вебхука\n - `template_engine: string` — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` — Название поля проверки для верификации входящего вебхука\n - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука\n - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом\n - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий\n\n## Эквивалентная команда\n\n```bash\npachca bots update 1738816 \\\n --name=\"Бот задач\" \\\n --nickname=tasks_bot \\\n --outgoing-url=https://www.website.com/tasks/new \\\n --events=message_new \\\n --commands=/task,/help \\\n --scopes=messages:create \\\n --template=\"Заказ от {{ client }} на сумму {{ amount }} ₽\" \\\n --challenge-key=challenge \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/update\nПолная справка: `pachca api PUT /bots/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/bots/{id}","description":"Редактирование бота\n\nМетод для редактирования бота.\n\nДля редактирования бота вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры бота указываются в теле запроса.\n\nВы не можете редактировать бота, настройки которого вам недоступны (поле «Кто может редактировать настройки бота» находится во вкладке «Основное» в настройках бота).","parameters":[{"name":"id","in":"path","description":"Идентификатор бота","required":true,"schema":{"type":"integer","format":"int32","example":1738816},"example":1738816}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на обновление бота","required":["webhook"],"properties":{"webhook":{"type":"object","description":"Объект параметров вебхука редактируемого бота","properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота. Должен заканчиваться на `_bot`.","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new"},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","default":"commands","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands","example":["/task","/help"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука","example":"Заказ от {{ client }} на сумму {{ amount }} ₽"},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","default":"liquid","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука","example":"challenge"},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","default":true,"example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","default":false,"example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","default":false,"example":false}}}},"$ref":"#/components/schemas/BotUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры бота","required":["id","webhook"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false}},"$ref":"#/components/schemas/BotWebhook"}]}},"$ref":"#/components/schemas/BotResponse"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bots:write","scopeRoles":["owner","admin","user"]},"paginated":false},"docs":"# Редактирование бота\n\n**Метод**: `PUT`\n\n**Путь**: `/bots/{id}`\n\n> **Скоуп:** `bots:write`\n\nМетод для редактирования бота.\n\nДля редактирования бота вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры бота указываются в теле запроса.\n\nВы не можете редактировать бота, настройки которого вам недоступны (поле «Кто может редактировать настройки бота» находится во вкладке «Основное» в настройках бота).\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор бота\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `webhook: object` (required) — Объект параметров вебхука редактируемого бота\n - `name: string` — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` — Никнейм бота. Должен заканчиваться на `_bot`.. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` — Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands. Пример: `[\"/task\",\"/help\"]`\n - `scopes: array of string` — Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.. Пример: `[\"messages:create\"]`\n - `template: string` — Шаблон форматирования входящего вебхука. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` — Название поля проверки для верификации входящего вебхука. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n\n### Пример\n\n```json\n{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/bots/1738816\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/bots/{id}/recreate_token","summary":"Ротация токена бота","scope":"bots:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots recreate-token","docLink":"https://dev.pachca.com/api/bots/recreate-token","describe":"# POST /bots/{id}/recreate_token — Ротация токена бота\n\n> **Скоуп:** `bots:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор бота\n\n## Эквивалентная команда\n\n```bash\npachca bots recreate-token 1738816 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/recreate-token\nПолная справка: `pachca api POST /bots/{id}/recreate_token --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/bots/{id}/recreate_token","description":"Ротация токена бота\n\nМетод генерирует боту новый `access_token` и сразу инвалидирует прежний. Используйте его при компрометации токена или плановой ротации секрета в `CI`.\n\nДоступен администратору, владельцу компании или создателю бота. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу.","parameters":[{"name":"id","in":"path","description":"Идентификатор бота","required":true,"schema":{"type":"integer","format":"int32","example":1738816},"example":1738816}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры созданного бота","required":["id","webhook","access_token"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false}},"$ref":"#/components/schemas/BotWebhook"}]},"access_token":{"type":"string","description":"Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.","example":"bm90X2FfcmVhbF90b2tlbg"}},"$ref":"#/components/schemas/BotCreateResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false},"access_token":"bm90X2FfcmVhbF90b2tlbg"}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bots:write","scopeRoles":["owner","admin","user"]},"paginated":false},"docs":"# Ротация токена бота\n\n**Метод**: `POST`\n\n**Путь**: `/bots/{id}/recreate_token`\n\n> **Скоуп:** `bots:write`\n\nМетод генерирует боту новый `access_token` и сразу инвалидирует прежний. Используйте его при компрометации токена или плановой ротации секрета в `CI`.\n\nДоступен администратору, владельцу компании или создателю бота. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор бота\n\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/bots/1738816/recreate_token\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры созданного бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `\"bm90X2FfcmVhbF90b2tlbg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false\n },\n \"access_token\": \"bm90X2FfcmVhbF90b2tlbg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/chats","summary":"Новый чат","scope":"chats:create","plan":null,"auth":true,"paginated":false,"command":"pachca chats create","docLink":"https://dev.pachca.com/api/chats/create","describe":"# POST /chats — Новый чат\n\n> **Скоуп:** `chats:create`\n\n## Тело запроса\n\n- `chat: object` (required) — Собранный объект параметров создаваемого чата\n - `name: string` (required) — Название\n - `member_ids: array of integer` — Массив идентификаторов пользователей, которые станут участниками\n - `group_tag_ids: array of integer` — Массив идентификаторов тегов, которые станут участниками\n - `channel: boolean` (default: false) — Является каналом\n - `public: boolean` (default: false) — Открытый доступ\n\n## Эквивалентная команда\n\n```bash\npachca chats create \\\n --name=\"🤿 aqua\" \\\n --member-ids=186,187 \\\n --group-tag-ids=86,18 \\\n --channel \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/create\nПолная справка: `pachca api POST /chats --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/chats","description":"Новый чат\n\nМетод для создания нового чата.\n\nДля создания личной переписки 1 на 1 с пользователем пользуйтесь методом [Новое сообщение](POST /messages).\n\nПри создании чата вы автоматически становитесь участником.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание чата","required":["chat"],"properties":{"chat":{"type":"object","description":"Собранный объект параметров создаваемого чата","required":["name"],"properties":{"name":{"type":"string","description":"Название","example":"🤿 aqua"},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, которые станут участниками","example":[186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, которые станут участниками","example":[86,18],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","default":false,"example":true},"public":{"type":"boolean","description":"Открытый доступ","default":false,"example":false}}}},"$ref":"#/components/schemas/ChatCreateRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:create","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новый чат\n\n**Метод**: `POST`\n\n**Путь**: `/chats`\n\n> **Скоуп:** `chats:create`\n\nМетод для создания нового чата.\n\nДля создания личной переписки 1 на 1 с пользователем пользуйтесь методом [Новое сообщение](POST /messages).\n\nПри создании чата вы автоматически становитесь участником.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `chat: object` (required) — Собранный объект параметров создаваемого чата\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `member_ids: array of integer` — Массив идентификаторов пользователей, которые станут участниками. Пример: `[186,187]`\n - `group_tag_ids: array of integer` — Массив идентификаторов тегов, которые станут участниками. Пример: `[86,18]`\n - `channel: boolean` (default: false) — Является каналом. Пример: `true`\n - `public: boolean` (default: false) — Открытый доступ. Пример: `false`\n\n### Пример\n\n```json\n{\n \"chat\": {\n \"name\": \"🤿 aqua\",\n \"member_ids\": [\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 86,\n 18\n ],\n \"channel\": true\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"chat\": {\n \"name\": \"🤿 aqua\",\n \"member_ids\": [\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 86,\n 18\n ],\n \"channel\": true\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Чат\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/chats","summary":"Список чатов","scope":"chats:read","plan":null,"auth":true,"paginated":true,"command":"pachca chats list","docLink":"https://dev.pachca.com/api/chats/list","describe":"# GET /chats — Список чатов\n\n> **Скоуп:** `chats:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `sort` — query: Поле сортировки\n- `order` — query: Направление сортировки\n- `availability` — query: Параметр, который отвечает за доступность и выборку чатов для пользователя\n- `last_message_at_after` — query: Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `last_message_at_before` — query: Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `personal` — query: Фильтрация по личным и групповым чатам. Если параметр не указан, возвращаются любые чаты.\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca chats list \\\n --sort=id \\\n --order=desc \\\n --availability=is_member \\\n --last-message-at-after=2025-01-01T00:00:00.000Z \\\n --last-message-at-before=2025-02-01T00:00:00.000Z \\\n --no-personal \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/list\nПолная справка: `pachca api GET /chats --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/chats","description":"Список чатов\n\nМетод для получения списка чатов по заданным параметрам.","parameters":[{"name":"sort","in":"query","description":"Поле сортировки","required":false,"schema":{"default":"id","allOf":[{"type":"string","description":"Поле сортировки чатов","enum":["id","last_message_at"],"x-enum-descriptions":{"id":"По идентификатору чата","last_message_at":"По дате и времени создания последнего сообщения"},"$ref":"#/components/schemas/ChatSortField"}]},"example":"id","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"default":"desc","allOf":[{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"$ref":"#/components/schemas/SortOrder"}]},"example":"desc","explode":false},{"name":"availability","in":"query","description":"Параметр, который отвечает за доступность и выборку чатов для пользователя","required":false,"schema":{"default":"is_member","allOf":[{"type":"string","description":"Доступность чатов для пользователя","enum":["is_member","public"],"x-enum-descriptions":{"is_member":"Чаты, где пользователь является участником","public":"Все открытые чаты компании, вне зависимости от участия в них пользователя"},"$ref":"#/components/schemas/ChatAvailability"}]},"example":"is_member","explode":false},{"name":"last_message_at_after","in":"query","description":"Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"last_message_at_before","in":"query","description":"Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"personal","in":"query","description":"Фильтрация по личным и групповым чатам. Если параметр не указан, возвращаются любые чаты.","required":false,"schema":{"type":"boolean","example":false},"example":false,"explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список чатов\n\n**Метод**: `GET`\n\n**Путь**: `/chats`\n\n> **Скоуп:** `chats:read`\n\nМетод для получения списка чатов по заданным параметрам.\n\n## Параметры\n\n### Query параметры\n\n- `sort: string` (default: id) — Поле сортировки\n- `order: string` (default: desc) — Направление сортировки\n- `availability: string` (default: is_member) — Параметр, который отвечает за доступность и выборку чатов для пользователя\n- `last_message_at_after: date-time` — Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `last_message_at_before: date-time` — Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `personal: boolean` — Фильтрация по личным и групповым чатам. Если параметр не указан, возвращаются любые чаты.\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/chats?sort=id&order=desc&availability=is_member&last_message_at_after=2025-01-01T00:00:00.000Z&last_message_at_before=2025-02-01T00:00:00.000Z&personal=false&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/chats/exports","summary":"Экспорт сообщений","scope":"chat_exports:write","plan":"corporation","auth":true,"paginated":false,"command":"pachca chats request-export","docLink":"https://dev.pachca.com/api/chats/request-export","describe":"# POST /chats/exports — Экспорт сообщений\n\n> **Скоуп:** `chat_exports:write`\n\n> **Тариф:** Корпорация\n\n## Тело запроса\n\n- `start_at: date` (required) — Дата начала для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD\n- `end_at: date` (required) — Дата окончания для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD\n- `webhook_url: string` (required) — Адрес, на который будет отправлен вебхук по завершению экспорта\n- `chat_ids: array of integer` — Массив идентификаторов чатов. Указывается, если нужно получить сообщения только некоторых чатов.\n- `skip_chats_file: boolean` (default: false) — Пропуск формирования файла со списком чатов (chats.json)\n\n## Эквивалентная команда\n\n```bash\npachca chats request-export \\\n --start-at=2025-03-20 \\\n --end-at=2025-03-20 \\\n --webhook-url=https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2 \\\n --chat-ids=1381521 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/request-export\nПолная справка: `pachca api POST /chats/exports --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/chats/exports","description":"Экспорт сообщений\n\nМетод для запрашивания экспорта сообщений за указанный период.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на экспорт сообщений","required":["start_at","end_at","webhook_url"],"properties":{"start_at":{"type":"string","format":"date","description":"Дата начала для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD","example":"2025-03-20"},"end_at":{"type":"string","format":"date","description":"Дата окончания для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD","example":"2025-03-20"},"webhook_url":{"type":"string","description":"Адрес, на который будет отправлен вебхук по завершению экспорта","example":"https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2"},"chat_ids":{"type":"array","description":"Массив идентификаторов чатов. Указывается, если нужно получить сообщения только некоторых чатов.","example":[1381521],"items":{"type":"integer","format":"int32"}},"skip_chats_file":{"type":"boolean","description":"Пропуск формирования файла со списком чатов (chats.json)","default":false,"example":false}},"$ref":"#/components/schemas/ExportRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_exports:write","plan":"corporation","scopeRoles":["owner"]},"paginated":false},"docs":"# Экспорт сообщений\n\n**Метод**: `POST`\n\n**Путь**: `/chats/exports`\n\n> **Скоуп:** `chat_exports:write`\n\n> **Внимание:** Доступно только на тарифе **Корпорация**\n\nМетод для запрашивания экспорта сообщений за указанный период.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `start_at: date` (required) — Дата начала для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD. Пример: `\"2025-03-20\"`\n- `end_at: date` (required) — Дата окончания для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD. Пример: `\"2025-03-20\"`\n- `webhook_url: string` (required) — Адрес, на который будет отправлен вебхук по завершению экспорта. Пример: `\"https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2\"`\n- `chat_ids: array of integer` — Массив идентификаторов чатов. Указывается, если нужно получить сообщения только некоторых чатов.. Пример: `[1381521]`\n- `skip_chats_file: boolean` (default: false) — Пропуск формирования файла со списком чатов (chats.json). Пример: `false`\n\n### Пример\n\n```json\n{\n \"start_at\": \"2025-03-20\",\n \"end_at\": \"2025-03-20\",\n \"webhook_url\": \"https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2\",\n \"chat_ids\": [\n 1381521\n ]\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/exports\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"start_at\": \"2025-03-20\",\n \"end_at\": \"2025-03-20\",\n \"webhook_url\": \"https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2\",\n \"chat_ids\": [\n 1381521\n ]\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/chats/exports/{id}","summary":"Скачать архив экспорта","scope":"chat_exports:read","plan":"corporation","auth":true,"paginated":false,"command":"pachca chats download-export","docLink":"https://dev.pachca.com/api/chats/download-export","describe":"# GET /chats/exports/{id} — Скачать архив экспорта\n\n> **Скоуп:** `chat_exports:read`\n\n> **Тариф:** Корпорация\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор экспорта\n\n## Эквивалентная команда\n\n```bash\npachca chats download-export 22322 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/download-export\nПолная справка: `pachca api GET /chats/exports/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/chats/exports/{id}","description":"Скачать архив экспорта\n\nМетод для скачивания готового архива экспорта сообщений.\n\nДля получения архива вам необходимо знать его `id` и указать его в `URL` запроса.\n\nВ ответ на запрос сервер вернёт `302 Found` с заголовком `Location`, содержащим временную ссылку на скачивание файла. Большинство HTTP-клиентов автоматически следуют редиректу и скачивают файл.","parameters":[{"name":"id","in":"path","description":"Идентификатор экспорта","required":true,"schema":{"type":"integer","format":"int32","example":22322},"example":22322}],"responses":{"302":{"description":"Redirection","headers":{"location":{"schema":{"type":"string","format":"uri"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"},{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_exports:read","plan":"corporation","scopeRoles":["owner"]},"paginated":false},"docs":"# Скачать архив экспорта\n\n**Метод**: `GET`\n\n**Путь**: `/chats/exports/{id}`\n\n> **Скоуп:** `chat_exports:read`\n\n> **Внимание:** Доступно только на тарифе **Корпорация**\n\nМетод для скачивания готового архива экспорта сообщений.\n\nДля получения архива вам необходимо знать его `id` и указать его в `URL` запроса.\n\nВ ответ на запрос сервер вернёт `302 Found` с заголовком `Location`, содержащим временную ссылку на скачивание файла. Большинство HTTP-клиентов автоматически следуют редиректу и скачивают файл.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор экспорта\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/exports/22322\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 302: Redirection\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n- **Вариант 2**\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/chats/{id}","summary":"Информация о чате","scope":"chats:read","plan":null,"auth":true,"paginated":false,"command":"pachca chats get","docLink":"https://dev.pachca.com/api/chats/get","describe":"# GET /chats/{id} — Информация о чате\n\n> **Скоуп:** `chats:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Эквивалентная команда\n\n```bash\npachca chats get 334 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/get\nПолная справка: `pachca api GET /chats/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/chats/{id}","description":"Информация о чате\n\nМетод для получения информации о чате.\n\nДля получения чата вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о чате\n\n**Метод**: `GET`\n\n**Путь**: `/chats/{id}`\n\n> **Скоуп:** `chats:read`\n\nМетод для получения информации о чате.\n\nДля получения чата вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/334\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Чат\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/chats/{id}","summary":"Редактирование чата","scope":"chats:update","plan":null,"auth":true,"paginated":false,"command":"pachca chats update","docLink":"https://dev.pachca.com/api/chats/update","describe":"# PUT /chats/{id} — Редактирование чата\n\n> **Скоуп:** `chats:update`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Тело запроса\n\n- `chat: object` (required) — Собранный объект параметров обновляемого чата\n - `name: string` — Название\n - `public: boolean` — Открытый доступ\n\n## Эквивалентная команда\n\n```bash\npachca chats update 334 \\\n --name=Бассейн \\\n --public \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/update\nПолная справка: `pachca api PUT /chats/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/chats/{id}","description":"Редактирование чата\n\nМетод для обновления параметров чата.\n\nДля обновления нужно знать `id` чата и указать его в `URL`. Все обновляемые поля передаются в теле запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на обновление чата","required":["chat"],"properties":{"chat":{"type":"object","description":"Собранный объект параметров обновляемого чата","properties":{"name":{"type":"string","description":"Название","example":"Бассейн"},"public":{"type":"boolean","description":"Открытый доступ","example":true}}}},"$ref":"#/components/schemas/ChatUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:update","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Редактирование чата\n\n**Метод**: `PUT`\n\n**Путь**: `/chats/{id}`\n\n> **Скоуп:** `chats:update`\n\nМетод для обновления параметров чата.\n\nДля обновления нужно знать `id` чата и указать его в `URL`. Все обновляемые поля передаются в теле запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `chat: object` (required) — Собранный объект параметров обновляемого чата\n - `name: string` — Название. Пример: `\"Бассейн\"`\n - `public: boolean` — Открытый доступ. Пример: `true`\n\n### Пример\n\n```json\n{\n \"chat\": {\n \"name\": \"Бассейн\",\n \"public\": true\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/chats/334\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"chat\": {\n \"name\": \"Бассейн\",\n \"public\": true\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Чат\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/chats/{id}/archive","summary":"Архивация чата","scope":"chats:archive","plan":null,"auth":true,"paginated":false,"command":"pachca chats archive","docLink":"https://dev.pachca.com/api/chats/archive","describe":"# PUT /chats/{id}/archive — Архивация чата\n\n> **Скоуп:** `chats:archive`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Эквивалентная команда\n\n```bash\npachca chats archive 334 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/archive\nПолная справка: `pachca api PUT /chats/{id}/archive --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/chats/{id}/archive","description":"Архивация чата\n\nМетод для отправки чата в архив.\n\nДля отправки чата в архив вам необходимо знать `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:archive","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Архивация чата\n\n**Метод**: `PUT`\n\n**Путь**: `/chats/{id}/archive`\n\n> **Скоуп:** `chats:archive`\n\nМетод для отправки чата в архив.\n\nДля отправки чата в архив вам необходимо знать `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/chats/334/archive\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/chats/{id}/group_tags","summary":"Добавление тегов","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members add-group-tags","docLink":"https://dev.pachca.com/api/members/add-group-tags","describe":"# POST /chats/{id}/group_tags — Добавление тегов\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Тело запроса\n\n- `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, которые станут участниками\n\n## Эквивалентная команда\n\n```bash\npachca members add-group-tags 334 \\\n --group-tag-ids=86,18 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/add-group-tags\nПолная справка: `pachca api POST /chats/{id}/group_tags --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/chats/{id}/group_tags","description":"Добавление тегов\n\nМетод для добавления тегов в состав участников беседы или канала.\n\nПосле добавления тега все его участники автоматически становятся участниками чата. Состав участников тега и чата синхронизируется автоматически: при добавлении нового участника в тег он сразу появляется в чате, при удалении из тега — удаляется из чата.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на добавление тегов в чат","required":["group_tag_ids"],"properties":{"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, которые станут участниками","example":[86,18],"items":{"type":"integer","format":"int32"}}},"$ref":"#/components/schemas/AddTagsRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Добавление тегов\n\n**Метод**: `POST`\n\n**Путь**: `/chats/{id}/group_tags`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для добавления тегов в состав участников беседы или канала.\n\nПосле добавления тега все его участники автоматически становятся участниками чата. Состав участников тега и чата синхронизируется автоматически: при добавлении нового участника в тег он сразу появляется в чате, при удалении из тега — удаляется из чата.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, которые станут участниками. Пример: `[86,18]`\n\n### Пример\n\n```json\n{\n \"group_tag_ids\": [\n 86,\n 18\n ]\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/334/group_tags\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"group_tag_ids\": [\n 86,\n 18\n ]\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/chats/{id}/group_tags/{tag_id}","summary":"Исключение тега","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members remove-group-tag","docLink":"https://dev.pachca.com/api/members/remove-group-tag","describe":"# DELETE /chats/{id}/group_tags/{tag_id} — Исключение тега\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n- `tag_id` — путь (обязательный): Идентификатор тега\n\n## Эквивалентная команда\n\n```bash\npachca members remove-group-tag 334 86 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/remove-group-tag\nПолная справка: `pachca api DELETE /chats/{id}/group_tags/{tag_id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/chats/{id}/group_tags/{tag_id}","description":"Исключение тега\n\nМетод для исключения тега из состава участников беседы или канала.\n\nДля исключения тега вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334},{"name":"tag_id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":86},"example":86}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Исключение тега\n\n**Метод**: `DELETE`\n\n**Путь**: `/chats/{id}/group_tags/{tag_id}`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для исключения тега из состава участников беседы или канала.\n\nДля исключения тега вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n- `tag_id: integer, int32` (required) — Идентификатор тега\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/chats/334/group_tags/86\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/chats/{id}/leave","summary":"Выход из беседы или канала","scope":"chats:leave","plan":null,"auth":true,"paginated":false,"command":"pachca members leave","docLink":"https://dev.pachca.com/api/members/leave","describe":"# DELETE /chats/{id}/leave — Выход из беседы или канала\n\n> **Скоуп:** `chats:leave`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Эквивалентная команда\n\n```bash\npachca members leave 334 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/leave\nПолная справка: `pachca api DELETE /chats/{id}/leave --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/chats/{id}/leave","description":"Выход из беседы или канала\n\nМетод для самостоятельного выхода из беседы или канала.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:leave","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Выход из беседы или канала\n\n**Метод**: `DELETE`\n\n**Путь**: `/chats/{id}/leave`\n\n> **Скоуп:** `chats:leave`\n\nМетод для самостоятельного выхода из беседы или канала.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/chats/334/leave\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/chats/{id}/members","summary":"Список участников чата","scope":"chat_members:read","plan":null,"auth":true,"paginated":true,"command":"pachca members list","docLink":"https://dev.pachca.com/api/members/list","describe":"# GET /chats/{id}/members — Список участников чата\n\n> **Скоуп:** `chat_members:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n- `role` — query: Роль в чате\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca members list 334 \\\n --role=all \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/list\nПолная справка: `pachca api GET /chats/{id}/members --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/chats/{id}/members","description":"Список участников чата\n\nМетод для получения актуального списка участников чата.\n\nВладелец пространства может получить состав участников любого чата пространства. Администраторы и боты могут получить список участников только тех чатов, в которых состоят (или которые являются открытыми).","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334},{"name":"role","in":"query","description":"Роль в чате","required":false,"schema":{"default":"all","allOf":[{"type":"string","description":"Роль участника чата (с фильтром все)","enum":["all","owner","admin","editor","member"],"x-enum-descriptions":{"all":"Любая роль","owner":"Создатель","admin":"Админ","editor":"Редактор","member":"Участник/подписчик"},"$ref":"#/components/schemas/ChatMemberRoleFilter"}]},"example":"all","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список участников чата\n\n**Метод**: `GET`\n\n**Путь**: `/chats/{id}/members`\n\n> **Скоуп:** `chat_members:read`\n\nМетод для получения актуального списка участников чата.\n\nВладелец пространства может получить состав участников любого чата пространства. Администраторы и боты могут получить список участников только тех чатов, в которых состоят (или которые являются открытыми).\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n### Query параметры\n\n- `role: string` (default: all) — Роль в чате\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/chats/334/members?role=all&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/chats/{id}/members","summary":"Добавление пользователей","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members add","docLink":"https://dev.pachca.com/api/members/add","describe":"# POST /chats/{id}/members — Добавление пользователей\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата (беседа, канал или чат треда)\n\n## Тело запроса\n\n- `member_ids: array of integer` (required) — Массив идентификаторов пользователей, которые станут участниками\n- `silent: boolean` — Не создавать в чате системное сообщение о добавлении участника\n\n## Эквивалентная команда\n\n```bash\npachca members add 334 \\\n --member-ids=186,187 \\\n --silent \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/add\nПолная справка: `pachca api POST /chats/{id}/members --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/chats/{id}/members","description":"Добавление пользователей\n\nМетод для добавления пользователей в состав участников беседы, канала или треда.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата (беседа, канал или чат треда)","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на добавление участников в чат","required":["member_ids"],"properties":{"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, которые станут участниками","example":[186,187],"items":{"type":"integer","format":"int32"}},"silent":{"type":"boolean","description":"Не создавать в чате системное сообщение о добавлении участника","example":true}},"$ref":"#/components/schemas/AddMembersRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Добавление пользователей\n\n**Метод**: `POST`\n\n**Путь**: `/chats/{id}/members`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для добавления пользователей в состав участников беседы, канала или треда.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата (беседа, канал или чат треда)\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `member_ids: array of integer` (required) — Массив идентификаторов пользователей, которые станут участниками. Пример: `[186,187]`\n- `silent: boolean` — Не создавать в чате системное сообщение о добавлении участника. Пример: `true`\n\n### Пример\n\n```json\n{\n \"member_ids\": [\n 186,\n 187\n ],\n \"silent\": true\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/334/members\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"member_ids\": [\n 186,\n 187\n ],\n \"silent\": true\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/chats/{id}/members/{user_id}","summary":"Исключение пользователя","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members remove","docLink":"https://dev.pachca.com/api/members/remove","describe":"# DELETE /chats/{id}/members/{user_id} — Исключение пользователя\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca members remove 334 186 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/remove\nПолная справка: `pachca api DELETE /chats/{id}/members/{user_id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/chats/{id}/members/{user_id}","description":"Исключение пользователя\n\nМетод для исключения пользователя из состава участников беседы или канала.\n\nЕсли пользователь является владельцем чата, то исключить его нельзя. Он может только самостоятельно выйти из чата, воспользовавшись методом [Выход из беседы или канала](DELETE /chats/{id}/leave).","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334},{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":186},"example":186}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Исключение пользователя\n\n**Метод**: `DELETE`\n\n**Путь**: `/chats/{id}/members/{user_id}`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для исключения пользователя из состава участников беседы или канала.\n\nЕсли пользователь является владельцем чата, то исключить его нельзя. Он может только самостоятельно выйти из чата, воспользовавшись методом [Выход из беседы или канала](DELETE /chats/{id}/leave).\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/chats/334/members/186\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/chats/{id}/members/{user_id}","summary":"Редактирование роли","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members update","docLink":"https://dev.pachca.com/api/members/update","describe":"# PUT /chats/{id}/members/{user_id} — Редактирование роли\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Тело запроса\n\n- `role: string` (required) — Роль\n Значения: `admin` — Админ, `editor` — Редактор (доступно только для каналов), `member` — Участник или подписчик\n\n## Эквивалентная команда\n\n```bash\npachca members update 334 186 \\\n --role=admin \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/update\nПолная справка: `pachca api PUT /chats/{id}/members/{user_id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/chats/{id}/members/{user_id}","description":"Редактирование роли\n\nМетод для редактирования роли пользователя или бота в беседе или канале.\n\nДля редактирования роли в беседе или канале вам необходимо знать `id` чата и пользователя (или бота) и указать их в `URL` запроса. Все редактируемые параметры роли указываются в теле запроса.\n\nВладельцу чата роль изменить нельзя. Он всегда имеет права Админа в чате.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334},{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":186},"example":186}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на изменение роли участника","required":["role"],"properties":{"role":{"description":"Роль","example":"admin","allOf":[{"type":"string","description":"Роль участника чата","enum":["admin","editor","member"],"x-enum-descriptions":{"admin":"Админ","editor":"Редактор (доступно только для каналов)","member":"Участник или подписчик"},"$ref":"#/components/schemas/ChatMemberRole"}]}},"$ref":"#/components/schemas/UpdateMemberRoleRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Редактирование роли\n\n**Метод**: `PUT`\n\n**Путь**: `/chats/{id}/members/{user_id}`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для редактирования роли пользователя или бота в беседе или канале.\n\nДля редактирования роли в беседе или канале вам необходимо знать `id` чата и пользователя (или бота) и указать их в `URL` запроса. Все редактируемые параметры роли указываются в теле запроса.\n\nВладельцу чата роль изменить нельзя. Он всегда имеет права Админа в чате.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `role: string` (required) — Роль\n Значения: `admin` — Админ, `editor` — Редактор (доступно только для каналов), `member` — Участник или подписчик\n\n### Пример\n\n```json\n{\n \"role\": \"admin\"\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/chats/334/members/186\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"role\": \"admin\"\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/chats/{id}/unarchive","summary":"Разархивация чата","scope":"chats:archive","plan":null,"auth":true,"paginated":false,"command":"pachca chats unarchive","docLink":"https://dev.pachca.com/api/chats/unarchive","describe":"# PUT /chats/{id}/unarchive — Разархивация чата\n\n> **Скоуп:** `chats:archive`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Эквивалентная команда\n\n```bash\npachca chats unarchive 334 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/unarchive\nПолная справка: `pachca api PUT /chats/{id}/unarchive --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/chats/{id}/unarchive","description":"Разархивация чата\n\nМетод для возвращения чата из архива.\n\nДля разархивации чата вам необходимо знать её `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:archive","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Разархивация чата\n\n**Метод**: `PUT`\n\n**Путь**: `/chats/{id}/unarchive`\n\n> **Скоуп:** `chats:archive`\n\nМетод для возвращения чата из архива.\n\nДля разархивации чата вам необходимо знать её `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/chats/334/unarchive\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/custom_properties","summary":"Список дополнительных полей","scope":"custom_properties:read","plan":null,"auth":true,"paginated":false,"command":"pachca custom-properties list","docLink":"https://dev.pachca.com/api/custom-properties/list","describe":"# GET /custom_properties — Список дополнительных полей\n\n> **Скоуп:** `custom_properties:read`\n\n## Параметры\n\n- `entity_type` — query (обязательный): Тип сущности\n\n## Эквивалентная команда\n\n```bash\npachca custom-properties list \\\n --entity-type=User \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/custom-properties/list\nПолная справка: `pachca api GET /custom_properties --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/custom_properties","description":"Список дополнительных полей\n\nНа данный момент работа с дополнительными полями типа \"Файл\" недоступна.\n\nМетод для получения актуального списка дополнительных полей участников и напоминаний в вашей компании.\n\nПо умолчанию в вашей компании все сущности имеют только базовые поля. Но администратор вашей компании может добавлять дополнительные поля, редактировать их и удалять. Если при создании сотрудников (или напоминаний) вы используете дополнительные поля, которые не являются актуальными (удалены или не существуют) - вы получите ошибку.","parameters":[{"name":"entity_type","in":"query","description":"Тип сущности","required":true,"schema":{"type":"string","description":"Тип сущности для поиска","enum":["User","Task"],"x-enum-descriptions":{"User":"Пользователь","Task":"Задача"},"example":"User","$ref":"#/components/schemas/SearchEntityType"},"example":"User","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]}},"$ref":"#/components/schemas/CustomPropertyDefinition"}}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"custom_properties:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Список дополнительных полей\n\n**Метод**: `GET`\n\n**Путь**: `/custom_properties`\n\n> **Скоуп:** `custom_properties:read`\n\nНа данный момент работа с дополнительными полями типа \"Файл\" недоступна.\n\nМетод для получения актуального списка дополнительных полей участников и напоминаний в вашей компании.\n\nПо умолчанию в вашей компании все сущности имеют только базовые поля. Но администратор вашей компании может добавлять дополнительные поля, редактировать их и удалять. Если при создании сотрудников (или напоминаний) вы используете дополнительные поля, которые не являются актуальными (удалены или не существуют) - вы получите ошибку.\n\n## Параметры\n\n### Query параметры\n\n- `entity_type: string` (required) — Тип сущности\n Значения: `User`, `Task`\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/custom_properties?entity_type=User\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\"\n }\n ]\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/direct_url","summary":"Загрузка файла","scope":null,"plan":null,"auth":false,"paginated":false,"command":"pachca files direct-url","docLink":"https://dev.pachca.com/api/files/direct-url","describe":"# POST /direct_url — Загрузка файла\n\n> Авторизация не требуется\n\n## Тело запроса\n\n- `Content-Disposition: string` (required) — Параметр Content-Disposition, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `acl: string` (required) — Параметр acl, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `policy: string` (required) — Параметр policy, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-credential: string` (required) — Параметр x-amz-credential, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-algorithm: string` (required) — Параметр x-amz-algorithm, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-date: string` (required) — Параметр x-amz-date, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-signature: string` (required) — Параметр x-amz-signature, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `key: string` (required) — Параметр key, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `file: binary` (required) — Файл для загрузки\n\n## Эквивалентная команда\n\n```bash\n# URL получается из ответа POST /uploads (поле direct_url)\npachca files direct-url \\\n --direct-url=$DIRECT_URL \\\n --content-disposition=your_api_token_here \\\n --acl=your_api_token_here \\\n --policy=your_api_token_here \\\n --x-amz-credential=your_api_token_here \\\n --x-amz-algorithm=your_api_token_here \\\n --x-amz-date=your_api_token_here \\\n --x-amz-signature=your_api_token_here \\\n --key=your_api_token_here \\\n --file=./file.jpg \\\n --json\n```\n\nДокументация: https://dev.pachca.com/api/files/direct-url\nПолная справка: `pachca api POST /direct_url --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/direct_url","description":"Загрузка файла\n\nЗагрузка файла на сервер с форматом `multipart/form-data`. Параметры для загрузки получаются через метод [Получение подписи, ключа и других параметров](POST /uploads).","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["Content-Disposition","acl","policy","x-amz-credential","x-amz-algorithm","x-amz-date","x-amz-signature","key","file"],"properties":{"Content-Disposition":{"type":"string","description":"Параметр Content-Disposition, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"acl":{"type":"string","description":"Параметр acl, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"policy":{"type":"string","description":"Параметр policy, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"x-amz-credential":{"type":"string","description":"Параметр x-amz-credential, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"x-amz-algorithm":{"type":"string","description":"Параметр x-amz-algorithm, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"x-amz-date":{"type":"string","description":"Параметр x-amz-date, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"x-amz-signature":{"type":"string","description":"Параметр x-amz-signature, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"key":{"type":"string","description":"Параметр key, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"file":{"type":"string","format":"binary","description":"Файл для загрузки"}},"$ref":"#/components/schemas/FileUploadRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "}},"requirements":{"auth":false},"paginated":false},"docs":"# Загрузка файла\n\n**Метод**: `POST`\n\n**Путь**: `/direct_url`\n\n> Авторизация не требуется\n\nЗагрузка файла на сервер с форматом `multipart/form-data`. Параметры для загрузки получаются через метод [Получение подписи, ключа и других параметров](POST /uploads).\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `multipart/form-data`\n\n### Схема\n\n- `Content-Disposition: string` (required) — Параметр Content-Disposition, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `acl: string` (required) — Параметр acl, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `policy: string` (required) — Параметр policy, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-credential: string` (required) — Параметр x-amz-credential, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-algorithm: string` (required) — Параметр x-amz-algorithm, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-date: string` (required) — Параметр x-amz-date, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-signature: string` (required) — Параметр x-amz-signature, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `key: string` (required) — Параметр key, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `file: binary` (required) — Файл для загрузки\n\n\n## Пример запроса\n\n```bash\n# URL получается из ответа POST /uploads (поле direct_url)\ncurl \"$DIRECT_URL\" \\\n -F \"Content-Disposition=attachment\" \\\n -F \"acl=private\" \\\n -F \"policy=eyJloNBpcmF0aW9u...\" \\\n -F \"x-amz-credential=286471_server/20211122/kz-6x/s3/aws4_request\" \\\n -F \"x-amz-algorithm=AWS4-HMAC-SHA256\" \\\n -F \"x-amz-date=20211122T065734Z\" \\\n -F \"x-amz-signature=87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475\" \\\n -F \"key=attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/$filename\" \\\n -F \"file=@filename.png\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n"},{"method":"POST","path":"/group_tags","summary":"Новый тег","scope":"group_tags:write","plan":null,"auth":true,"paginated":false,"command":"pachca group-tags create","docLink":"https://dev.pachca.com/api/group-tags/create","describe":"# POST /group_tags — Новый тег\n\n> **Скоуп:** `group_tags:write`\n\n## Тело запроса\n\n- `group_tag: object` (required)\n - `name: string` (required) — Название тега\n\n## Эквивалентная команда\n\n```bash\npachca group-tags create \\\n --name=\"Новое название тега\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/create\nПолная справка: `pachca api POST /group_tags --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/group_tags","description":"Новый тег\n\nМетод для создания нового тега.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание или редактирование тега","required":["group_tag"],"properties":{"group_tag":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Название тега","example":"Новое название тега"}}}},"$ref":"#/components/schemas/GroupTagRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тег","required":["id","name","users_count"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор тега","example":9111},"name":{"type":"string","description":"Название тега","example":"Design"},"users_count":{"type":"integer","format":"int32","description":"Количество сотрудников, которые имеют этот тег","example":6}},"$ref":"#/components/schemas/GroupTag"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Новый тег\n\n**Метод**: `POST`\n\n**Путь**: `/group_tags`\n\n> **Скоуп:** `group_tags:write`\n\nМетод для создания нового тега.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `group_tag: object` (required)\n - `name: string` (required) — Название тега. Пример: `\"Новое название тега\"`\n\n### Пример\n\n```json\n{\n \"group_tag\": {\n \"name\": \"Новое название тега\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/group_tags\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"group_tag\": {\n \"name\": \"Новое название тега\"\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тег\n - `id: integer, int32` (required) — Идентификатор тега. Пример: `9111`\n - `name: string` (required) — Название тега. Пример: `\"Design\"`\n - `users_count: integer, int32` (required) — Количество сотрудников, которые имеют этот тег. Пример: `6`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 9111,\n \"name\": \"Design\",\n \"users_count\": 6\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/group_tags","summary":"Список тегов сотрудников","scope":"group_tags:read","plan":null,"auth":true,"paginated":true,"command":"pachca group-tags list","docLink":"https://dev.pachca.com/api/group-tags/list","describe":"# GET /group_tags — Список тегов сотрудников\n\n> **Скоуп:** `group_tags:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `names` — query: Массив названий тегов, по которым вы хотите отфильтровать список\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca group-tags list \\\n --names=Design,Product \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/list\nПолная справка: `pachca api GET /group_tags --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/group_tags","description":"Список тегов сотрудников\n\nМетод для получения актуального списка тегов сотрудников. Названия тегов являются уникальными в компании.","parameters":[{"name":"names","in":"query","description":"Массив названий тегов, по которым вы хотите отфильтровать список","required":false,"schema":{"type":"array","description":"Массив названий тегов","example":["Design","Product"],"items":{"type":"string"},"$ref":"#/components/schemas/TagNamesFilter"},"example":["Design","Product"]},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Тег","required":["id","name","users_count"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор тега","example":9111},"name":{"type":"string","description":"Название тега","example":"Design"},"users_count":{"type":"integer","format":"int32","description":"Количество сотрудников, которые имеют этот тег","example":6}},"$ref":"#/components/schemas/GroupTag"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:read","scopeRoles":["owner","admin"]},"paginated":true},"docs":"# Список тегов сотрудников\n\n**Метод**: `GET`\n\n**Путь**: `/group_tags`\n\n> **Скоуп:** `group_tags:read`\n\nМетод для получения актуального списка тегов сотрудников. Названия тегов являются уникальными в компании.\n\n## Параметры\n\n### Query параметры\n\n- `names: array` — Массив названий тегов, по которым вы хотите отфильтровать список\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/group_tags?names[]=Design&names[]=Product&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор тега. Пример: `9111`\n - `name: string` (required) — Название тега. Пример: `\"Design\"`\n - `users_count: integer, int32` (required) — Количество сотрудников, которые имеют этот тег. Пример: `6`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 9111,\n \"name\": \"Design\",\n \"users_count\": 6\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/group_tags/{id}","summary":"Информация о теге","scope":"group_tags:read","plan":null,"auth":true,"paginated":false,"command":"pachca group-tags get","docLink":"https://dev.pachca.com/api/group-tags/get","describe":"# GET /group_tags/{id} — Информация о теге\n\n> **Скоуп:** `group_tags:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор тега\n\n## Эквивалентная команда\n\n```bash\npachca group-tags get 9111 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/get\nПолная справка: `pachca api GET /group_tags/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/group_tags/{id}","description":"Информация о теге\n\nМетод для получения информации о теге. Названия тегов являются уникальными в компании.\n\nДля получения тега вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":9111},"example":9111}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тег","required":["id","name","users_count"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор тега","example":9111},"name":{"type":"string","description":"Название тега","example":"Design"},"users_count":{"type":"integer","format":"int32","description":"Количество сотрудников, которые имеют этот тег","example":6}},"$ref":"#/components/schemas/GroupTag"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:read","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Информация о теге\n\n**Метод**: `GET`\n\n**Путь**: `/group_tags/{id}`\n\n> **Скоуп:** `group_tags:read`\n\nМетод для получения информации о теге. Названия тегов являются уникальными в компании.\n\nДля получения тега вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор тега\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/group_tags/9111\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тег\n - `id: integer, int32` (required) — Идентификатор тега. Пример: `9111`\n - `name: string` (required) — Название тега. Пример: `\"Design\"`\n - `users_count: integer, int32` (required) — Количество сотрудников, которые имеют этот тег. Пример: `6`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 9111,\n \"name\": \"Design\",\n \"users_count\": 6\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/group_tags/{id}","summary":"Редактирование тега","scope":"group_tags:write","plan":null,"auth":true,"paginated":false,"command":"pachca group-tags update","docLink":"https://dev.pachca.com/api/group-tags/update","describe":"# PUT /group_tags/{id} — Редактирование тега\n\n> **Скоуп:** `group_tags:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор тега\n\n## Тело запроса\n\n- `group_tag: object` (required)\n - `name: string` (required) — Название тега\n\n## Эквивалентная команда\n\n```bash\npachca group-tags update 9111 \\\n --name=\"Новое название тега\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/update\nПолная справка: `pachca api PUT /group_tags/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/group_tags/{id}","description":"Редактирование тега\n\nМетод для редактирования тега.\n\nДля редактирования тега вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры тега указываются в теле запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":9111},"example":9111}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание или редактирование тега","required":["group_tag"],"properties":{"group_tag":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Название тега","example":"Новое название тега"}}}},"$ref":"#/components/schemas/GroupTagRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тег","required":["id","name","users_count"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор тега","example":9111},"name":{"type":"string","description":"Название тега","example":"Design"},"users_count":{"type":"integer","format":"int32","description":"Количество сотрудников, которые имеют этот тег","example":6}},"$ref":"#/components/schemas/GroupTag"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Редактирование тега\n\n**Метод**: `PUT`\n\n**Путь**: `/group_tags/{id}`\n\n> **Скоуп:** `group_tags:write`\n\nМетод для редактирования тега.\n\nДля редактирования тега вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры тега указываются в теле запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор тега\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `group_tag: object` (required)\n - `name: string` (required) — Название тега. Пример: `\"Новое название тега\"`\n\n### Пример\n\n```json\n{\n \"group_tag\": {\n \"name\": \"Новое название тега\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/group_tags/9111\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"group_tag\": {\n \"name\": \"Новое название тега\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тег\n - `id: integer, int32` (required) — Идентификатор тега. Пример: `9111`\n - `name: string` (required) — Название тега. Пример: `\"Design\"`\n - `users_count: integer, int32` (required) — Количество сотрудников, которые имеют этот тег. Пример: `6`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 9111,\n \"name\": \"Design\",\n \"users_count\": 6\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/group_tags/{id}","summary":"Удаление тега","scope":"group_tags:write","plan":null,"auth":true,"paginated":false,"command":"pachca group-tags delete","docLink":"https://dev.pachca.com/api/group-tags/delete","describe":"# DELETE /group_tags/{id} — Удаление тега\n\n> **Скоуп:** `group_tags:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор тега\n\n## Эквивалентная команда\n\n```bash\npachca group-tags delete 9111 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/delete\nПолная справка: `pachca api DELETE /group_tags/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/group_tags/{id}","description":"Удаление тега\n\nМетод для удаления тега.\n\nДля удаления тега вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":9111},"example":9111}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Удаление тега\n\n**Метод**: `DELETE`\n\n**Путь**: `/group_tags/{id}`\n\n> **Скоуп:** `group_tags:write`\n\nМетод для удаления тега.\n\nДля удаления тега вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор тега\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/group_tags/9111\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/group_tags/{id}/users","summary":"Список сотрудников тега","scope":"group_tags:read","plan":null,"auth":true,"paginated":true,"command":"pachca group-tags list-users","docLink":"https://dev.pachca.com/api/group-tags/list-users","describe":"# GET /group_tags/{id}/users — Список сотрудников тега\n\n> **Скоуп:** `group_tags:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор тега\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca group-tags list-users 9111 \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/list-users\nПолная справка: `pachca api GET /group_tags/{id}/users --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/group_tags/{id}/users","description":"Список сотрудников тега\n\nМетод для получения актуального списка сотрудников тега.","parameters":[{"name":"id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":9111},"example":9111},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:read","scopeRoles":["owner","admin"]},"paginated":true},"docs":"# Список сотрудников тега\n\n**Метод**: `GET`\n\n**Путь**: `/group_tags/{id}/users`\n\n> **Скоуп:** `group_tags:read`\n\nМетод для получения актуального списка сотрудников тега.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор тега\n\n### Query параметры\n\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/group_tags/9111/users?limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages","summary":"Новое сообщение","scope":"messages:create","plan":null,"auth":true,"paginated":false,"command":"pachca messages create","docLink":"https://dev.pachca.com/api/messages/create","describe":"# POST /messages — Новое сообщение\n\n> **Скоуп:** `messages:create`\n\n## Тело запроса\n\n- `message: object` (required) — Собранный объект параметров создаваемого сообщения\n - `entity_type: string` — Тип сущности\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности\n - `content: string` (required) — Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).\n - `files: array of object` — Прикрепляемые файлы\n - `key: string` (required) — Путь к файлу, полученный в результате [загрузки файла](POST /direct_url)\n - `name: string` (required) — Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением)\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `size: integer, int32` (required) — Размер файла в байтах, отображаемый пользователю\n - `width: integer, int32` — Ширина изображения в px (используется в случае, если file_type указан как image)\n - `height: integer, int32` — Высота изображения в px (используется в случае, если file_type указан как image)\n - `duration_ms: integer, int32` (min: 1) — Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.\n - `waveform: string` (max length: 256) — Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.\n - `buttons: array of array` — Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке.\n - `parent_message_id: integer, int32` — Идентификатор сообщения. Указывается в случае, если вы отправляете ответ на другое сообщение.\n - `display_avatar_url: string` (max length: 255) — Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.\n - `display_name: string` (max length: 255) — Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.\n - `skip_invite_mentions: boolean` (default: false) — Пропуск добавления упоминаемых пользователей в тред. Работает только при отправке сообщения в тред.\n- `link_preview: boolean` (default: false) — Отображение предпросмотра первой найденной ссылки в тексте сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages create \\\n --entity-id=334 \\\n --content=\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\" \\\n --files='[{\"key\":\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\"name\":\"logo.png\",\"file_type\":\"image\",\"size\":12345,\"width\":800,\"height\":600,\"duration_ms\":5400,\"waveform\":\"4,8,12,20,16,10,6,3\"}]' \\\n --buttons='[[{\"text\":\"Подробнее\",\"url\":\"https://example.com/details\"},{\"text\":\"Отлично!\",\"data\":\"awesome\"}]]' \\\n --parent-message-id=194270 \\\n --display-avatar-url=https://example.com/avatar.png \\\n --display-name=\"Бот Поддержки\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/create\nПолная справка: `pachca api POST /messages --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages","description":"Новое сообщение\n\nМетод для отправки сообщения в беседу или канал, личного сообщения пользователю или комментария в тред.\n\nПри использовании `entity_type: \"discussion\"` (или просто без указания `entity_type`) допускается отправка любого `chat_id` в поле `entity_id`. То есть, сообщение можно отправить зная только идентификатор чата. При этом, вы имеете возможность отправить сообщение в тред по его идентификатору или личное сообщение по идентификатору пользователя.\n\nДля отправки личного сообщения пользователю создавать чат не требуется. Достаточно указать `entity_type: \"user\"` и идентификатор пользователя. Чат будет создан автоматически, если между вами ещё не было переписки. Между двумя пользователями может быть только один личный чат.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание сообщения","required":["message"],"properties":{"message":{"type":"object","description":"Собранный объект параметров создаваемого сообщения","required":["entity_id","content"],"properties":{"entity_type":{"description":"Тип сущности","default":"discussion","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности","example":334},"content":{"type":"string","description":"Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"files":{"type":"array","description":"Прикрепляемые файлы","items":{"type":"object","required":["key","name","file_type","size"],"properties":{"key":{"type":"string","description":"Путь к файлу, полученный в результате [загрузки файла](POST /direct_url)","example":"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png"},"name":{"type":"string","description":"Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением)","example":"logo.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"size":{"type":"integer","format":"int32","description":"Размер файла в байтах, отображаемый пользователю","example":12345},"width":{"type":"integer","format":"int32","description":"Ширина изображения в px (используется в случае, если file_type указан как image)","example":800},"height":{"type":"integer","format":"int32","description":"Высота изображения в px (используется в случае, если file_type указан как image)","example":600},"duration_ms":{"type":"integer","format":"int32","description":"Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.","example":5400,"minimum":1},"waveform":{"type":"string","description":"Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.","example":"4,8,12,20,16,10,6,3","maxLength":256}}}},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке.","example":[[{"text":"Подробнее","url":"https://example.com/details"},{"text":"Отлично!","data":"awesome"}]],"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения. Указывается в случае, если вы отправляете ответ на другое сообщение.","example":194270},"display_avatar_url":{"type":"string","description":"Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","example":"https://example.com/avatar.png","maxLength":255},"display_name":{"type":"string","description":"Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","example":"Бот Поддержки","maxLength":255},"skip_invite_mentions":{"type":"boolean","description":"Пропуск добавления упоминаемых пользователей в тред. Работает только при отправке сообщения в тред.","default":false,"example":false}}},"link_preview":{"type":"boolean","description":"Отображение предпросмотра первой найденной ссылки в тексте сообщения","default":false,"example":false}},"$ref":"#/components/schemas/MessageCreateRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:create","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новое сообщение\n\n**Метод**: `POST`\n\n**Путь**: `/messages`\n\n> **Скоуп:** `messages:create`\n\nМетод для отправки сообщения в беседу или канал, личного сообщения пользователю или комментария в тред.\n\nПри использовании `entity_type: \"discussion\"` (или просто без указания `entity_type`) допускается отправка любого `chat_id` в поле `entity_id`. То есть, сообщение можно отправить зная только идентификатор чата. При этом, вы имеете возможность отправить сообщение в тред по его идентификатору или личное сообщение по идентификатору пользователя.\n\nДля отправки личного сообщения пользователю создавать чат не требуется. Достаточно указать `entity_type: \"user\"` и идентификатор пользователя. Чат будет создан автоматически, если между вами ещё не было переписки. Между двумя пользователями может быть только один личный чат.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `message: object` (required) — Собранный объект параметров создаваемого сообщения\n - `entity_type: string` — Тип сущности\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности. Пример: `334`\n - `content: string` (required) — Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `files: array of object` — Прикрепляемые файлы\n - `key: string` (required) — Путь к файлу, полученный в результате [загрузки файла](POST /direct_url). Пример: `\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\"`\n - `name: string` (required) — Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением). Пример: `\"logo.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `size: integer, int32` (required) — Размер файла в байтах, отображаемый пользователю. Пример: `12345`\n - `width: integer, int32` — Ширина изображения в px (используется в случае, если file_type указан как image). Пример: `800`\n - `height: integer, int32` — Высота изображения в px (используется в случае, если file_type указан как image). Пример: `600`\n - `duration_ms: integer, int32` (min: 1) — Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.. Пример: `5400`\n - `waveform: string` (max length: 256) — Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `buttons: array of array` — Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке.. Пример: `[[{\"text\":\"Подробнее\",\"url\":\"https://example.com/details\"},{\"text\":\"Отлично!\",\"data\":\"awesome\"}]]`\n - `parent_message_id: integer, int32` — Идентификатор сообщения. Указывается в случае, если вы отправляете ответ на другое сообщение.. Пример: `194270`\n - `display_avatar_url: string` (max length: 255) — Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.. Пример: `\"https://example.com/avatar.png\"`\n - `display_name: string` (max length: 255) — Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.. Пример: `\"Бот Поддержки\"`\n - `skip_invite_mentions: boolean` (default: false) — Пропуск добавления упоминаемых пользователей в тред. Работает только при отправке сообщения в тред.. Пример: `false`\n- `link_preview: boolean` (default: false) — Отображение предпросмотра первой найденной ссылки в тексте сообщения. Пример: `false`\n\n### Пример\n\n```json\n{\n \"message\": {\n \"entity_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"files\": [\n {\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\n \"name\": \"logo.png\",\n \"file_type\": \"image\",\n \"size\": 12345,\n \"width\": 800,\n \"height\": 600,\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\"\n }\n ],\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\"\n },\n {\n \"text\": \"Отлично!\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"parent_message_id\": 194270,\n \"display_avatar_url\": \"https://example.com/avatar.png\",\n \"display_name\": \"Бот Поддержки\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/messages\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"message\": {\n \"entity_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"files\": [\n {\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\n \"name\": \"logo.png\",\n \"file_type\": \"image\",\n \"size\": 12345,\n \"width\": 800,\n \"height\": 600,\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\"\n }\n ],\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\"\n },\n {\n \"text\": \"Отлично!\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"parent_message_id\": 194270,\n \"display_avatar_url\": \"https://example.com/avatar.png\",\n \"display_name\": \"Бот Поддержки\"\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сообщение\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/messages","summary":"Список сообщений чата","scope":"messages:read","plan":null,"auth":true,"paginated":true,"command":"pachca messages list","docLink":"https://dev.pachca.com/api/messages/list","describe":"# GET /messages — Список сообщений чата\n\n> **Скоуп:** `messages:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `chat_id` — query (обязательный): Идентификатор чата (беседа, канал, диалог или чат треда)\n- `sort` — query: Поле сортировки\n- `order` — query: Направление сортировки\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca messages list \\\n --chat-id=198 \\\n --sort=id \\\n --order=desc \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/list\nПолная справка: `pachca api GET /messages --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/messages","description":"Список сообщений чата\n\nМетод для получения списка сообщений бесед, каналов, тредов и личных сообщений.\n\nДля получения сообщений вам необходимо знать `chat_id` требуемой беседы, канала, треда или диалога, и указать его в `URL` запроса. Сообщения будут возвращены в порядке убывания даты отправки (то есть, сначала будут идти последние сообщения чата). Для получения более ранних сообщений чата доступны параметры `limit` и `cursor`.","parameters":[{"name":"chat_id","in":"query","description":"Идентификатор чата (беседа, канал, диалог или чат треда)","required":true,"schema":{"type":"integer","format":"int32","example":198},"example":198,"explode":false},{"name":"sort","in":"query","description":"Поле сортировки","required":false,"schema":{"default":"id","allOf":[{"type":"string","description":"Поле сортировки сообщений","enum":["id"],"x-enum-descriptions":{"id":"По идентификатору сообщения"},"$ref":"#/components/schemas/MessageSortField"}]},"example":"id","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"default":"desc","allOf":[{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"$ref":"#/components/schemas/SortOrder"}]},"example":"desc","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список сообщений чата\n\n**Метод**: `GET`\n\n**Путь**: `/messages`\n\n> **Скоуп:** `messages:read`\n\nМетод для получения списка сообщений бесед, каналов, тредов и личных сообщений.\n\nДля получения сообщений вам необходимо знать `chat_id` требуемой беседы, канала, треда или диалога, и указать его в `URL` запроса. Сообщения будут возвращены в порядке убывания даты отправки (то есть, сначала будут идти последние сообщения чата). Для получения более ранних сообщений чата доступны параметры `limit` и `cursor`.\n\n## Параметры\n\n### Query параметры\n\n- `chat_id: integer, int32` (required) — Идентификатор чата (беседа, канал, диалог или чат треда)\n- `sort: string` (default: id) — Поле сортировки\n- `order: string` (default: desc) — Направление сортировки\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/messages?chat_id=198&sort=id&order=desc&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": null\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/messages/{id}","summary":"Информация о сообщении","scope":"messages:read","plan":null,"auth":true,"paginated":false,"command":"pachca messages get","docLink":"https://dev.pachca.com/api/messages/get","describe":"# GET /messages/{id} — Информация о сообщении\n\n> **Скоуп:** `messages:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages get 194275 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/get\nПолная справка: `pachca api GET /messages/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/messages/{id}","description":"Информация о сообщении\n\nМетод для получения информации о сообщении.\n\nДля получения сообщения вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о сообщении\n\n**Метод**: `GET`\n\n**Путь**: `/messages/{id}`\n\n> **Скоуп:** `messages:read`\n\nМетод для получения информации о сообщении.\n\nДля получения сообщения вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/messages/194275\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сообщение\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/messages/{id}","summary":"Редактирование сообщения","scope":"messages:update","plan":null,"auth":true,"paginated":false,"command":"pachca messages update","docLink":"https://dev.pachca.com/api/messages/update","describe":"# PUT /messages/{id} — Редактирование сообщения\n\n> **Скоуп:** `messages:update`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Тело запроса\n\n- `message: object` (required) — Собранный объект параметров редактируемого сообщения\n - `content: string` — Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).\n - `files: array of object` — Прикрепляемые файлы\n - `key: string` (required) — Путь к файлу, полученный в результате [загрузки файла](POST /direct_url)\n - `name: string` (required) — Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением)\n - `file_type: string` — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `size: integer, int32` — Размер файла в байтах, отображаемый пользователю\n - `width: integer, int32` — Ширина изображения в px (используется в случае, если file_type указан как image)\n - `height: integer, int32` — Высота изображения в px (используется в случае, если file_type указан как image)\n - `duration_ms: integer, int32` (min: 1) — Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.\n - `waveform: string` (max length: 256) — Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.\n - `buttons: array of array` — Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке. Для удаления кнопок пришлите пустой массив.\n - `display_avatar_url: string` — Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.\n - `display_name: string` — Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.\n\n## Эквивалентная команда\n\n```bash\npachca messages update 194275 \\\n --content=\"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.\" \\\n --files='[{\"key\":\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\"name\":\"logo.png\",\"file_type\":\"image\",\"size\":12345,\"width\":800,\"height\":600,\"duration_ms\":5400,\"waveform\":\"4,8,12,20,16,10,6,3\"}]' \\\n --buttons='[[{\"text\":\"Подробнее\",\"url\":\"https://example.com/details\"}]]' \\\n --display-avatar-url=https://example.com/avatar.png \\\n --display-name=\"Бот Поддержки\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/update\nПолная справка: `pachca api PUT /messages/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/messages/{id}","description":"Редактирование сообщения\n\nМетод для редактирования сообщения или комментария.\n\nДля редактирования сообщения вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сообщения указываются в теле запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на редактирование сообщения","required":["message"],"properties":{"message":{"type":"object","description":"Собранный объект параметров редактируемого сообщения","properties":{"content":{"type":"string","description":"Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).","example":"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет."},"files":{"type":"array","description":"Прикрепляемые файлы","items":{"type":"object","required":["key","name"],"properties":{"key":{"type":"string","description":"Путь к файлу, полученный в результате [загрузки файла](POST /direct_url)","example":"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png"},"name":{"type":"string","description":"Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением)","example":"logo.png"},"file_type":{"description":"Тип файла","default":"file","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"size":{"type":"integer","format":"int32","description":"Размер файла в байтах, отображаемый пользователю","example":12345},"width":{"type":"integer","format":"int32","description":"Ширина изображения в px (используется в случае, если file_type указан как image)","example":800},"height":{"type":"integer","format":"int32","description":"Высота изображения в px (используется в случае, если file_type указан как image)","example":600},"duration_ms":{"type":"integer","format":"int32","description":"Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.","example":5400,"minimum":1},"waveform":{"type":"string","description":"Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.","example":"4,8,12,20,16,10,6,3","maxLength":256}}}},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке. Для удаления кнопок пришлите пустой массив.","example":[[{"text":"Подробнее","url":"https://example.com/details"}]],"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"display_avatar_url":{"type":"string","description":"Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","example":"https://example.com/avatar.png"},"display_name":{"type":"string","description":"Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","example":"Бот Поддержки"}}}},"$ref":"#/components/schemas/MessageUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:update","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Редактирование сообщения\n\n**Метод**: `PUT`\n\n**Путь**: `/messages/{id}`\n\n> **Скоуп:** `messages:update`\n\nМетод для редактирования сообщения или комментария.\n\nДля редактирования сообщения вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сообщения указываются в теле запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `message: object` (required) — Собранный объект параметров редактируемого сообщения\n - `content: string` — Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).. Пример: `\"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.\"`\n - `files: array of object` — Прикрепляемые файлы\n - `key: string` (required) — Путь к файлу, полученный в результате [загрузки файла](POST /direct_url). Пример: `\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\"`\n - `name: string` (required) — Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением). Пример: `\"logo.png\"`\n - `file_type: string` — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `size: integer, int32` — Размер файла в байтах, отображаемый пользователю. Пример: `12345`\n - `width: integer, int32` — Ширина изображения в px (используется в случае, если file_type указан как image). Пример: `800`\n - `height: integer, int32` — Высота изображения в px (используется в случае, если file_type указан как image). Пример: `600`\n - `duration_ms: integer, int32` (min: 1) — Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.. Пример: `5400`\n - `waveform: string` (max length: 256) — Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `buttons: array of array` — Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке. Для удаления кнопок пришлите пустой массив.. Пример: `[[{\"text\":\"Подробнее\",\"url\":\"https://example.com/details\"}]]`\n - `display_avatar_url: string` — Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.. Пример: `\"https://example.com/avatar.png\"`\n - `display_name: string` — Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.. Пример: `\"Бот Поддержки\"`\n\n### Пример\n\n```json\n{\n \"message\": {\n \"content\": \"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.\",\n \"files\": [\n {\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\n \"name\": \"logo.png\",\n \"file_type\": \"image\",\n \"size\": 12345,\n \"width\": 800,\n \"height\": 600,\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\"\n }\n ],\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\"\n }\n ]\n ],\n \"display_avatar_url\": \"https://example.com/avatar.png\",\n \"display_name\": \"Бот Поддержки\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/messages/194275\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"message\": {\n \"content\": \"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.\",\n \"files\": [\n {\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\n \"name\": \"logo.png\",\n \"file_type\": \"image\",\n \"size\": 12345,\n \"width\": 800,\n \"height\": 600,\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\"\n }\n ],\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\"\n }\n ]\n ],\n \"display_avatar_url\": \"https://example.com/avatar.png\",\n \"display_name\": \"Бот Поддержки\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сообщение\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/messages/{id}","summary":"Удаление сообщения","scope":"messages:delete","plan":null,"auth":true,"paginated":false,"command":"pachca messages delete","docLink":"https://dev.pachca.com/api/messages/delete","describe":"# DELETE /messages/{id} — Удаление сообщения\n\n> **Скоуп:** `messages:delete`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages delete 194275 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/delete\nПолная справка: `pachca api DELETE /messages/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/messages/{id}","description":"Удаление сообщения\n\nМетод для удаления сообщения.\n\nУдаление сообщения доступно отправителю, админам и редакторам в чате. В личных сообщениях оба пользователя являются редакторами. Ограничений по давности отправки сообщения нет.\n\nДля удаления сообщения вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:delete","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление сообщения\n\n**Метод**: `DELETE`\n\n**Путь**: `/messages/{id}`\n\n> **Скоуп:** `messages:delete`\n\nМетод для удаления сообщения.\n\nУдаление сообщения доступно отправителю, админам и редакторам в чате. В личных сообщениях оба пользователя являются редакторами. Ограничений по давности отправки сообщения нет.\n\nДля удаления сообщения вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/messages/194275\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages/{id}/link_previews","summary":"Unfurl (разворачивание ссылок)","scope":"link_previews:write","plan":null,"auth":true,"paginated":false,"command":"pachca messages unfurl","docLink":"https://dev.pachca.com/api/messages/unfurl","describe":"# POST /messages/{id}/link_previews — Unfurl (разворачивание ссылок)\n\n> **Скоуп:** `link_previews:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Тело запроса\n\n- `link_previews: Record` (required) — `JSON` карта предпросмотров ссылок, где каждый ключ — `URL`, который был получен в исходящем вебхуке о новом сообщении.\n **Структура значений Record:**\n - `title: string` (required) — Заголовок\n - `description: string` (required) — Описание\n - `image_url: string` — Публичная ссылка на изображение (если вы хотите загрузить файл изображения в Пачку, то используйте параметр image)\n - `image: object` — Изображение\n - `key: string` (required) — Путь к изображению, полученный в результате [загрузки файла](POST /direct_url)\n - `name: string` (required) — Название изображения (рекомендуется писать вместе с расширением)\n - `size: integer, int32` — Размер изображения в байтах\n\n## Эквивалентная команда\n\n```bash\npachca messages unfurl 194275 \\\n --link-previews='{\"https://website.com/articles/123\":{\"title\":\"Статья: Отправка файлов\",\"description\":\"Пример отправки файлов на удаленный сервер\",\"image_url\":\"https://website.com/img/landing.png\",\"image\":{\"key\":\"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}\",\"name\":\"files-to-server.jpg\",\"size\":695604}}}' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/unfurl\nПолная справка: `pachca api POST /messages/{id}/link_previews --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages/{id}/link_previews","description":"Unfurl (разворачивание ссылок)\n\nМетод для создания предпросмотров ссылок в сообщениях. Доступен только для Unfurl-ботов.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на разворачивание ссылок","required":["link_previews"],"properties":{"link_previews":{"type":"object","description":"`JSON` карта предпросмотров ссылок, где каждый ключ — `URL`, который был получен в исходящем вебхуке о новом сообщении.","x-record-key-example":"https://website.com/articles/123","additionalProperties":{"type":"object","description":"Данные для предпросмотра ссылки","required":["title","description"],"properties":{"title":{"type":"string","description":"Заголовок","example":"Статья: Отправка файлов"},"description":{"type":"string","description":"Описание","example":"Пример отправки файлов на удаленный сервер"},"image_url":{"type":"string","description":"Публичная ссылка на изображение (если вы хотите загрузить файл изображения в Пачку, то используйте параметр image)","example":"https://website.com/img/landing.png"},"image":{"type":"object","description":"Изображение","required":["key","name"],"properties":{"key":{"type":"string","description":"Путь к изображению, полученный в результате [загрузки файла](POST /direct_url)","example":"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}"},"name":{"type":"string","description":"Название изображения (рекомендуется писать вместе с расширением)","example":"files-to-server.jpg"},"size":{"type":"integer","format":"int32","description":"Размер изображения в байтах","example":695604}}}},"$ref":"#/components/schemas/LinkPreview"}}},"$ref":"#/components/schemas/LinkPreviewsRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"link_previews:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Unfurl (разворачивание ссылок)\n\n**Метод**: `POST`\n\n**Путь**: `/messages/{id}/link_previews`\n\n> **Скоуп:** `link_previews:write`\n\nМетод для создания предпросмотров ссылок в сообщениях. Доступен только для Unfurl-ботов.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `link_previews: Record` (required) — `JSON` карта предпросмотров ссылок, где каждый ключ — `URL`, который был получен в исходящем вебхуке о новом сообщении.\n **Структура значений Record:**\n - `title: string` (required) — Заголовок. Пример: `\"Статья: Отправка файлов\"`\n - `description: string` (required) — Описание. Пример: `\"Пример отправки файлов на удаленный сервер\"`\n - `image_url: string` — Публичная ссылка на изображение (если вы хотите загрузить файл изображения в Пачку, то используйте параметр image). Пример: `\"https://website.com/img/landing.png\"`\n - `image: object` — Изображение\n - `key: string` (required) — Путь к изображению, полученный в результате [загрузки файла](POST /direct_url). Пример: `\"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}\"`\n - `name: string` (required) — Название изображения (рекомендуется писать вместе с расширением). Пример: `\"files-to-server.jpg\"`\n - `size: integer, int32` — Размер изображения в байтах. Пример: `695604`\n\n### Пример\n\n```json\n{\n \"link_previews\": {\n \"https://website.com/articles/123\": {\n \"title\": \"Статья: Отправка файлов\",\n \"description\": \"Пример отправки файлов на удаленный сервер\",\n \"image_url\": \"https://website.com/img/landing.png\",\n \"image\": {\n \"key\": \"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}\",\n \"name\": \"files-to-server.jpg\",\n \"size\": 695604\n }\n }\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/messages/194275/link_previews\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"link_previews\": {\n \"https://website.com/articles/123\": {\n \"title\": \"Статья: Отправка файлов\",\n \"description\": \"Пример отправки файлов на удаленный сервер\",\n \"image_url\": \"https://website.com/img/landing.png\",\n \"image\": {\n \"key\": \"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}\",\n \"name\": \"files-to-server.jpg\",\n \"size\": 695604\n }\n }\n }\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages/{id}/pin","summary":"Закрепление сообщения","scope":"pins:write","plan":null,"auth":true,"paginated":false,"command":"pachca messages pin","docLink":"https://dev.pachca.com/api/messages/pin","describe":"# POST /messages/{id}/pin — Закрепление сообщения\n\n> **Скоуп:** `pins:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages pin 194275 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/pin\nПолная справка: `pachca api POST /messages/{id}/pin --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages/{id}/pin","description":"Закрепление сообщения\n\nМетод для закрепления сообщения в чате.\n\nДля закрепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error"}},"requirements":{"scope":"pins:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Закрепление сообщения\n\n**Метод**: `POST`\n\n**Путь**: `/messages/{id}/pin`\n\n> **Скоуп:** `pins:write`\n\nМетод для закрепления сообщения в чате.\n\nДля закрепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/messages/194275/pin\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n"},{"method":"DELETE","path":"/messages/{id}/pin","summary":"Открепление сообщения","scope":"pins:write","plan":null,"auth":true,"paginated":false,"command":"pachca messages unpin","docLink":"https://dev.pachca.com/api/messages/unpin","describe":"# DELETE /messages/{id}/pin — Открепление сообщения\n\n> **Скоуп:** `pins:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages unpin 194275 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/unpin\nПолная справка: `pachca api DELETE /messages/{id}/pin --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/messages/{id}/pin","description":"Открепление сообщения\n\nМетод для открепления сообщения из чата.\n\nДля открепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"pins:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Открепление сообщения\n\n**Метод**: `DELETE`\n\n**Путь**: `/messages/{id}/pin`\n\n> **Скоуп:** `pins:write`\n\nМетод для открепления сообщения из чата.\n\nДля открепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/messages/194275/pin\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages/{id}/reactions","summary":"Добавление реакции","scope":"reactions:write","plan":null,"auth":true,"paginated":false,"command":"pachca reactions add","docLink":"https://dev.pachca.com/api/reactions/add","describe":"# POST /messages/{id}/reactions — Добавление реакции\n\n> **Скоуп:** `reactions:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Тело запроса\n\n- `code: string` (required) — Emoji символ реакции\n- `name: string` — Текстовое имя эмодзи (используется для кастомных эмодзи)\n\n## Эквивалентная команда\n\n```bash\npachca reactions add 7231942 \\\n --code=👍 \\\n --name=:+1: \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/reactions/add\nПолная справка: `pachca api POST /messages/{id}/reactions --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages/{id}/reactions","description":"Добавление реакции\n\nМетод для добавления реакции на сообщение.\n\nДля добавления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения отправляются в виде символов `Emoji`. Если пользователь уже ставил реакцию - повторно она установлена не будет. Для удаления реакции надо воспользоваться методом [Удаление реакции](DELETE /messages/{id}/reactions).\n\n**Лимиты реакций:**\n\n- Каждый пользователь может установить не более **20 уникальных** реакций\n- Сообщение может иметь не более **30 уникальных** реакций\n- Общее количество реакций на сообщение не может превышать **1000**","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":7231942},"example":7231942}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на добавление реакции","required":["code"],"properties":{"code":{"type":"string","description":"Emoji символ реакции","example":"👍"},"name":{"type":"string","description":"Текстовое имя эмодзи (используется для кастомных эмодзи)","example":":+1:"}},"$ref":"#/components/schemas/ReactionRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Реакция на сообщение","required":["user_id","created_at","code","name"],"properties":{"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который добавил реакцию","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-01-20T10:30:00.000Z"},"code":{"type":"string","description":"Emoji символ реакции","example":"👍"},"name":{"type":"string","description":"Название emoji реакции","example":":+1::skin-tone-1:","nullable":true}},"$ref":"#/components/schemas/Reaction"}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"reactions:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Добавление реакции\n\n**Метод**: `POST`\n\n**Путь**: `/messages/{id}/reactions`\n\n> **Скоуп:** `reactions:write`\n\nМетод для добавления реакции на сообщение.\n\nДля добавления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения отправляются в виде символов `Emoji`. Если пользователь уже ставил реакцию - повторно она установлена не будет. Для удаления реакции надо воспользоваться методом [Удаление реакции](DELETE /messages/{id}/reactions).\n\n**Лимиты реакций:**\n\n- Каждый пользователь может установить не более **20 уникальных** реакций\n- Сообщение может иметь не более **30 уникальных** реакций\n- Общее количество реакций на сообщение не может превышать **1000**\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `code: string` (required) — Emoji символ реакции. Пример: `\"👍\"`\n- `name: string` — Текстовое имя эмодзи (используется для кастомных эмодзи). Пример: `\":+1:\"`\n\n### Пример\n\n```json\n{\n \"code\": \"👍\",\n \"name\": \":+1:\"\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/messages/7231942/reactions\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"code\": \"👍\",\n \"name\": \":+1:\"\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя, который добавил реакцию. Пример: `12`\n- `created_at: date-time` (required) — Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-01-20T10:30:00.000Z\"`\n- `code: string` (required) — Emoji символ реакции. Пример: `\"👍\"`\n- `name: string` (required) — Название emoji реакции. Пример: `\":+1::skin-tone-1:\"`\n\n**Пример ответа:**\n\n```json\n{\n \"user_id\": 12,\n \"created_at\": \"2024-01-20T10:30:00.000Z\",\n \"code\": \"👍\",\n \"name\": \":+1::skin-tone-1:\"\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/messages/{id}/reactions","summary":"Удаление реакции","scope":"reactions:write","plan":null,"auth":true,"paginated":false,"command":"pachca reactions remove","docLink":"https://dev.pachca.com/api/reactions/remove","describe":"# DELETE /messages/{id}/reactions — Удаление реакции\n\n> **Скоуп:** `reactions:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n- `code` — query (обязательный): Emoji символ реакции\n- `name` — query: Текстовое имя эмодзи (используется для кастомных эмодзи)\n\n## Эквивалентная команда\n\n```bash\npachca reactions remove 7231942 \\\n --code=👍 \\\n --name=:+1: \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/reactions/remove\nПолная справка: `pachca api DELETE /messages/{id}/reactions --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/messages/{id}/reactions","description":"Удаление реакции\n\nМетод для удаления реакции на сообщение.\n\nДля удаления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения хранятся в виде символов `Emoji`.\n\nУдалять можно только те реакции, которые были поставлены авторизованным пользователем.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":7231942},"example":7231942},{"name":"code","in":"query","description":"Emoji символ реакции","required":true,"schema":{"type":"string","example":"👍"},"example":"👍","explode":false},{"name":"name","in":"query","description":"Текстовое имя эмодзи (используется для кастомных эмодзи)","required":false,"schema":{"type":"string","example":":+1:"},"example":":+1:","explode":false}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"reactions:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление реакции\n\n**Метод**: `DELETE`\n\n**Путь**: `/messages/{id}/reactions`\n\n> **Скоуп:** `reactions:write`\n\nМетод для удаления реакции на сообщение.\n\nДля удаления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения хранятся в виде символов `Emoji`.\n\nУдалять можно только те реакции, которые были поставлены авторизованным пользователем.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n### Query параметры\n\n- `code: string` (required) — Emoji символ реакции\n- `name: string` — Текстовое имя эмодзи (используется для кастомных эмодзи)\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/messages/7231942/reactions?code=👍&name=:+1:\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/messages/{id}/reactions","summary":"Список реакций","scope":"reactions:read","plan":null,"auth":true,"paginated":true,"command":"pachca reactions list","docLink":"https://dev.pachca.com/api/reactions/list","describe":"# GET /messages/{id}/reactions — Список реакций\n\n> **Скоуп:** `reactions:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca reactions list 194275 \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/reactions/list\nПолная справка: `pachca api GET /messages/{id}/reactions --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/messages/{id}/reactions","description":"Список реакций\n\nМетод для получения актуального списка реакций на сообщение.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Реакция на сообщение","required":["user_id","created_at","code","name"],"properties":{"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который добавил реакцию","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-01-20T10:30:00.000Z"},"code":{"type":"string","description":"Emoji символ реакции","example":"👍"},"name":{"type":"string","description":"Название emoji реакции","example":":+1::skin-tone-1:","nullable":true}},"$ref":"#/components/schemas/Reaction"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"reactions:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список реакций\n\n**Метод**: `GET`\n\n**Путь**: `/messages/{id}/reactions`\n\n> **Скоуп:** `reactions:read`\n\nМетод для получения актуального списка реакций на сообщение.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n### Query параметры\n\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/messages/194275/reactions?limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `user_id: integer, int32` (required) — Идентификатор пользователя, который добавил реакцию. Пример: `12`\n - `created_at: date-time` (required) — Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-01-20T10:30:00.000Z\"`\n - `code: string` (required) — Emoji символ реакции. Пример: `\"👍\"`\n - `name: string` (required) — Название emoji реакции. Пример: `\":+1::skin-tone-1:\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"user_id\": 12,\n \"created_at\": \"2024-01-20T10:30:00.000Z\",\n \"code\": \"👍\",\n \"name\": \":+1::skin-tone-1:\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/messages/{id}/read_member_ids","summary":"Список прочитавших сообщение","scope":"messages:read","plan":null,"auth":true,"paginated":true,"command":"pachca read-member list-readers","docLink":"https://dev.pachca.com/api/read-member/list-readers","describe":"# GET /messages/{id}/read_member_ids — Список прочитавших сообщение\n\n> **Скоуп:** `messages:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca read-member list-readers 194275 \\\n --limit=300 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/read-member/list-readers\nПолная справка: `pachca api GET /messages/{id}/read_member_ids --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/messages/{id}/read_member_ids","description":"Список прочитавших сообщение\n\nМетод для получения актуального списка пользователей, прочитавших сообщение.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":300,"example":300,"minimum":1,"maximum":300},"example":300,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"integer","format":"int32"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список прочитавших сообщение\n\n**Метод**: `GET`\n\n**Путь**: `/messages/{id}/read_member_ids`\n\n> **Скоуп:** `messages:read`\n\nМетод для получения актуального списка пользователей, прочитавших сообщение.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n### Query параметры\n\n- `limit: integer, int32` (default: 300) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/messages/194275/read_member_ids?limit=300\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of integer` (required)\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n 100\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages/{id}/thread","summary":"Новый тред","scope":"threads:create","plan":null,"auth":true,"paginated":false,"command":"pachca threads add","docLink":"https://dev.pachca.com/api/threads/add","describe":"# POST /messages/{id}/thread — Новый тред\n\n> **Скоуп:** `threads:create`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca threads add 154332686 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/threads/add\nПолная справка: `pachca api POST /messages/{id}/thread --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages/{id}/thread","description":"Новый тред\n\nМетод для создания нового треда к сообщению.\n\nЕсли у сообщения уже был создан тред, то в ответе на запрос вернётся информация об уже созданном ранее треде.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":154332686},"example":154332686}],"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тред","required":["id","chat_id","message_id","message_chat_id","updated_at"],"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред)","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages))","example":2637266155},"message_id":{"type":"integer","format":"int64","description":"Идентификатор сообщения, к которому был создан тред","example":154332686},"message_chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата сообщения","example":2637266154},"updated_at":{"type":"string","format":"date-time","description":"Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2023-02-01T19:20:47.204Z"}},"$ref":"#/components/schemas/Thread"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"threads:create","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новый тред\n\n**Метод**: `POST`\n\n**Путь**: `/messages/{id}/thread`\n\n> **Скоуп:** `threads:create`\n\nМетод для создания нового треда к сообщению.\n\nЕсли у сообщения уже был создан тред, то в ответе на запрос вернётся информация об уже созданном ранее треде.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/messages/154332686/thread\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тред\n - `id: integer, int64` (required) — Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред). Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages)). Пример: `2637266155`\n - `message_id: integer, int64` (required) — Идентификатор сообщения, к которому был создан тред. Пример: `154332686`\n - `message_chat_id: integer, int64` (required) — Идентификатор чата сообщения. Пример: `2637266154`\n - `updated_at: date-time` (required) — Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2023-02-01T19:20:47.204Z\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 265142,\n \"chat_id\": 2637266155,\n \"message_id\": 154332686,\n \"message_chat_id\": 2637266154,\n \"updated_at\": \"2023-02-01T19:20:47.204Z\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/oauth/token/info","summary":"Информация о токене","scope":null,"plan":null,"auth":true,"paginated":false,"command":"pachca oauth token-info","docLink":"https://dev.pachca.com/api/oauth/token-info","describe":"# GET /oauth/token/info — Информация о токене\n\n## Эквивалентная команда\n\n```bash\npachca oauth token-info \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/oauth/token-info\nПолная справка: `pachca api GET /oauth/token/info --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/oauth/token/info","description":"Информация о токене\n\nМетод для получения информации о текущем OAuth токене, включая его скоупы, дату создания и последнего использования. Токен в ответе маскируется — видны только первые 8 и последние 4 символа.","parameters":[],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Токен доступа","required":["id","token","name","user_id","scopes","created_at","revoked_at","expires_in","last_used_at"],"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор токена","example":4827},"token":{"type":"string","description":"Маскированный токен (видны первые 8 и последние 4 символа)","example":"cH5kR9mN...x7Qp"},"name":{"type":"string","description":"Пользовательское имя токена","example":"Мой API токен","nullable":true},"user_id":{"type":"integer","format":"int64","description":"Идентификатор владельца токена","example":12},"scopes":{"type":"array","description":"Список скоупов токена","example":["messages:read","chats:read"],"items":{"type":"string","description":"Скоуп доступа OAuth токена","enum":["chats:read","chats:create","chats:update","chats:archive","chats:leave","chat_members:read","chat_members:write","chat_exports:read","chat_exports:write","messages:read","messages:create","messages:update","messages:delete","reactions:read","reactions:write","pins:write","threads:read","threads:create","link_previews:write","users:read","users:create","users:update","users:delete","group_tags:read","group_tags:write","bots:read","bots:write","bot_self:webhook:write","bot_self:write","profile:read","profile_status:read","profile_status:write","profile_avatar:write","user_status:read","user_status:write","user_avatar:write","custom_properties:read","audit_events:read","tasks:read","tasks:create","tasks:update","tasks:delete","files:read","files:write","uploads:write","views:write","webhooks:read","webhooks:write","webhooks:events:read","webhooks:events:delete","search:users","search:chats","search:messages"],"x-enum-descriptions":{"chats:read":"Просмотр чатов и списка чатов","chats:create":"Создание новых чатов","chats:update":"Изменение настроек чата","chats:archive":"Архивация и разархивация чатов","chats:leave":"Выход из чатов","chat_members:read":"Просмотр участников чата","chat_members:write":"Добавление, изменение и удаление участников чата","chat_exports:read":"Скачивание экспортов чата","chat_exports:write":"Создание экспортов чата","messages:read":"Просмотр сообщений в чатах","messages:create":"Отправка сообщений","messages:update":"Редактирование сообщений","messages:delete":"Удаление сообщений","reactions:read":"Просмотр реакций на сообщения","reactions:write":"Добавление и удаление реакций","pins:write":"Закрепление и открепление сообщений","threads:read":"Просмотр тредов (комментариев)","threads:create":"Создание тредов (комментариев)","link_previews:write":"Unfurl (разворачивание ссылок)","views:write":"Открытие форм (представлений)","users:read":"Просмотр информации о сотрудниках и списка сотрудников","users:create":"Создание новых сотрудников","users:update":"Редактирование данных сотрудника","users:delete":"Удаление сотрудников","group_tags:read":"Просмотр тегов","group_tags:write":"Создание, редактирование и удаление тегов","bots:read":"Просмотр ботов","bots:write":"Управление ботами","bot_self:webhook:write":"Самостоятельное управление адресом вебхука бота","bot_self:write":"Самостоятельное управление настройками бота","profile:read":"Просмотр информации о своем профиле","profile_status:read":"Просмотр статуса профиля","profile_status:write":"Изменение и удаление статуса профиля","profile_avatar:write":"Изменение и удаление аватара профиля","user_status:read":"Просмотр статуса сотрудника","user_status:write":"Изменение и удаление статуса сотрудника","user_avatar:write":"Изменение и удаление аватара сотрудника","custom_properties:read":"Просмотр дополнительных полей","audit_events:read":"Просмотр журнала аудита","tasks:read":"Просмотр задач","tasks:create":"Создание задач","tasks:update":"Изменение задачи","tasks:delete":"Удаление задачи","files:read":"Скачивание файлов","files:write":"Загрузка файлов","uploads:write":"Получение данных для загрузки файлов","webhooks:read":"Просмотр вебхуков","webhooks:write":"Создание и управление вебхуками","webhooks:events:read":"Просмотр лога вебхуков","webhooks:events:delete":"Удаление записи в логе вебхука","search:users":"Поиск сотрудников","search:chats":"Поиск чатов","search:messages":"Поиск сообщений"},"x-scope-roles":{"chats:read":["owner","admin","user","bot"],"chats:create":["owner","admin","user","bot"],"chats:update":["owner","admin","user","bot"],"chats:archive":["owner","admin","user","bot"],"chats:leave":["owner","admin","user","bot"],"chat_members:read":["owner","admin","user","bot"],"chat_members:write":["owner","admin","user","bot"],"chat_exports:read":["owner"],"chat_exports:write":["owner"],"messages:read":["owner","admin","user","bot"],"messages:create":["owner","admin","user","bot"],"messages:update":["owner","admin","user","bot"],"messages:delete":["owner","admin","user","bot"],"reactions:read":["owner","admin","user","bot"],"reactions:write":["owner","admin","user","bot"],"pins:write":["owner","admin","user","bot"],"threads:read":["owner","admin","user","bot"],"threads:create":["owner","admin","user","bot"],"link_previews:write":["owner","admin","user","bot"],"views:write":["owner","admin","user","bot"],"users:read":["owner","admin","user","bot"],"users:create":["owner","admin"],"users:update":["owner","admin"],"users:delete":["owner","admin"],"group_tags:read":["owner","admin"],"group_tags:write":["owner","admin"],"bots:read":["owner","admin","user"],"bots:write":["owner","admin","user"],"bot_self:webhook:write":["bot"],"bot_self:write":["bot"],"profile:read":["owner","admin","user","bot"],"profile_status:read":["owner","admin","user","bot"],"profile_status:write":["owner","admin","user","bot"],"profile_avatar:write":["owner","admin","user","bot"],"user_status:read":["owner","admin"],"user_status:write":["owner","admin"],"user_avatar:write":["owner","admin"],"custom_properties:read":["owner","admin","user","bot"],"audit_events:read":["owner"],"tasks:read":["owner","admin","user","bot"],"tasks:create":["owner","admin","user","bot"],"tasks:update":["owner","admin","user","bot"],"tasks:delete":["owner","admin","user","bot"],"files:read":["owner","admin","user","bot"],"files:write":["owner","admin","user","bot"],"uploads:write":["owner","admin","user","bot"],"webhooks:read":["owner","admin","user","bot"],"webhooks:write":["owner","admin","user","bot"],"webhooks:events:read":["owner","admin","user","bot"],"webhooks:events:delete":["owner","admin","user","bot"],"search:users":["owner","admin","user","bot"],"search:chats":["owner","admin","user","bot"],"search:messages":["owner","admin","user","bot"]},"$ref":"#/components/schemas/OAuthScope"}},"created_at":{"type":"string","format":"date-time","description":"Дата создания токена","example":"2025-01-15T10:30:00.000Z"},"revoked_at":{"type":"string","format":"date-time","description":"Дата отзыва токена","example":null,"nullable":true},"expires_in":{"type":"integer","format":"int32","description":"Время жизни токена в секундах","example":null,"nullable":true},"last_used_at":{"type":"string","format":"date-time","description":"Дата последнего использования токена","example":"2025-02-24T14:20:00.000Z","nullable":true}},"$ref":"#/components/schemas/AccessTokenInfo"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"paginated":false},"docs":"# Информация о токене\n\n**Метод**: `GET`\n\n**Путь**: `/oauth/token/info`\n\nМетод для получения информации о текущем OAuth токене, включая его скоупы, дату создания и последнего использования. Токен в ответе маскируется — видны только первые 8 и последние 4 символа.\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/oauth/token/info\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Токен доступа\n - `id: integer, int64` (required) — Идентификатор токена. Пример: `4827`\n - `token: string` (required) — Маскированный токен (видны первые 8 и последние 4 символа). Пример: `\"cH5kR9mN...x7Qp\"`\n - `name: string` (required) — Пользовательское имя токена. Пример: `\"Мой API токен\"`\n - `user_id: integer, int64` (required) — Идентификатор владельца токена. Пример: `12`\n - `scopes: array of string` (required) — Список скоупов токена. Пример: `[\"messages:read\",\"chats:read\"]`\n - `created_at: date-time` (required) — Дата создания токена. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `revoked_at: date-time` (required) — Дата отзыва токена. Пример: `null`\n - `expires_in: integer, int32` (required) — Время жизни токена в секундах. Пример: `null`\n - `last_used_at: date-time` (required) — Дата последнего использования токена. Пример: `\"2025-02-24T14:20:00.000Z\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 4827,\n \"token\": \"cH5kR9mN...x7Qp\",\n \"name\": \"Мой API токен\",\n \"user_id\": 12,\n \"scopes\": [\n \"messages:read\",\n \"chats:read\"\n ],\n \"created_at\": \"2025-01-15T10:30:00.000Z\",\n \"revoked_at\": null,\n \"expires_in\": null,\n \"last_used_at\": \"2025-02-24T14:20:00.000Z\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/profile","summary":"Свой профиль","scope":"profile:read","plan":null,"auth":true,"paginated":false,"command":"pachca profile get","docLink":"https://dev.pachca.com/api/profile/get","describe":"# GET /profile — Свой профиль\n\n> **Скоуп:** `profile:read`\n\n## Эквивалентная команда\n\n```bash\npachca profile get \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/get\nПолная справка: `pachca api GET /profile --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/profile","description":"Свой профиль\n\nМетод для получения информации о своем профиле.","parameters":[],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"profile:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Свой профиль\n\n**Метод**: `GET`\n\n**Путь**: `/profile`\n\n> **Скоуп:** `profile:read`\n\nМетод для получения информации о своем профиле.\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/profile\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сотрудник\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"PUT","path":"/profile/avatar","summary":"Загрузка своего аватара","scope":"profile_avatar:write","plan":null,"auth":true,"paginated":false,"command":"pachca profile update-avatar","docLink":"https://dev.pachca.com/api/profile/update-avatar","describe":"# PUT /profile/avatar — Загрузка своего аватара\n\n> **Скоуп:** `profile_avatar:write`\n\n## Тело запроса\n\n- `image: binary` (required) — Файл изображения для аватара\n\n## Эквивалентная команда\n\n```bash\npachca profile update-avatar \\\n --file=./image.jpg \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/update-avatar\nПолная справка: `pachca api PUT /profile/avatar --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/profile/avatar","description":"Загрузка своего аватара\n\nМетод для загрузки или обновления аватара своего профиля. Файл передается в формате `multipart/form-data`.","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary","description":"Файл изображения для аватара"}}}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Данные аватара","required":["image_url"],"properties":{"image_url":{"type":"string","description":"URL аватара","example":"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg"}},"$ref":"#/components/schemas/AvatarData"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"profile_avatar:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Загрузка своего аватара\n\n**Метод**: `PUT`\n\n**Путь**: `/profile/avatar`\n\n> **Скоуп:** `profile_avatar:write`\n\nМетод для загрузки или обновления аватара своего профиля. Файл передается в формате `multipart/form-data`.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `multipart/form-data`\n\n### Схема\n\n- `image: binary` (required) — Файл изображения для аватара\n\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/profile/avatar\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -F \"image=@filename.png\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Данные аватара\n - `image_url: string` (required) — URL аватара. Пример: `\"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"image_url\": \"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/profile/avatar","summary":"Удаление своего аватара","scope":"profile_avatar:write","plan":null,"auth":true,"paginated":false,"command":"pachca profile delete-avatar","docLink":"https://dev.pachca.com/api/profile/delete-avatar","describe":"# DELETE /profile/avatar — Удаление своего аватара\n\n> **Скоуп:** `profile_avatar:write`\n\n## Эквивалентная команда\n\n```bash\npachca profile delete-avatar \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/delete-avatar\nПолная справка: `pachca api DELETE /profile/avatar --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/profile/avatar","description":"Удаление своего аватара\n\nМетод для удаления аватара своего профиля.","parameters":[],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}}},"requirements":{"scope":"profile_avatar:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление своего аватара\n\n**Метод**: `DELETE`\n\n**Путь**: `/profile/avatar`\n\n> **Скоуп:** `profile_avatar:write`\n\nМетод для удаления аватара своего профиля.\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/profile/avatar\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/profile/status","summary":"Свой статус","scope":"profile_status:read","plan":null,"auth":true,"paginated":false,"command":"pachca profile get-status","docLink":"https://dev.pachca.com/api/profile/get-status","describe":"# GET /profile/status — Свой статус\n\n> **Скоуп:** `profile_status:read`\n\n## Эквивалентная команда\n\n```bash\npachca profile get-status \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/get-status\nПолная справка: `pachca api GET /profile/status --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/profile/status","description":"Свой статус\n\nМетод для получения информации о своем статусе.","parameters":[],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"profile_status:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Свой статус\n\n**Метод**: `GET`\n\n**Путь**: `/profile/status`\n\n> **Скоуп:** `profile_status:read`\n\nМетод для получения информации о своем статусе.\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/profile/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Статус пользователя\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"PUT","path":"/profile/status","summary":"Новый свой статус","scope":"profile_status:write","plan":null,"auth":true,"paginated":false,"command":"pachca profile update-status","docLink":"https://dev.pachca.com/api/profile/update-status","describe":"# PUT /profile/status — Новый свой статус\n\n> **Скоуп:** `profile_status:write`\n\n## Тело запроса\n\n- `status: object` (required)\n - `emoji: string` (required) — Emoji символ статуса\n - `title: string` (required) — Текст статуса\n - `expires_at: date-time` — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ\n - `is_away: boolean` — Режим «Нет на месте»\n - `away_message: string` (max length: 1024) — Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.\n\n## Эквивалентная команда\n\n```bash\npachca profile update-status \\\n --emoji=🎮 \\\n --title=\"Очень занят\" \\\n --expires-at=2024-04-08T10:00:00.000Z \\\n --is-away \\\n --away-message=\"Вернусь после 15:00\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/update-status\nПолная справка: `pachca api PUT /profile/status --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/profile/status","description":"Новый свой статус\n\nМетод для установки себе нового статуса.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на установку статуса","required":["status"],"properties":{"status":{"type":"object","required":["emoji","title"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z"},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":true},"away_message":{"type":"string","description":"Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.","example":"Вернусь после 15:00","maxLength":1024}}}},"$ref":"#/components/schemas/StatusUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"profile_status:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новый свой статус\n\n**Метод**: `PUT`\n\n**Путь**: `/profile/status`\n\n> **Скоуп:** `profile_status:write`\n\nМетод для установки себе нового статуса.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `status: object` (required)\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` — Режим «Нет на месте». Пример: `true`\n - `away_message: string` (max length: 1024) — Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.. Пример: `\"Вернусь после 15:00\"`\n\n### Пример\n\n```json\n{\n \"status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": true,\n \"away_message\": \"Вернусь после 15:00\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/profile/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": true,\n \"away_message\": \"Вернусь после 15:00\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Статус пользователя\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/profile/status","summary":"Удаление своего статуса","scope":"profile_status:write","plan":null,"auth":true,"paginated":false,"command":"pachca profile delete-status","docLink":"https://dev.pachca.com/api/profile/delete-status","describe":"# DELETE /profile/status — Удаление своего статуса\n\n> **Скоуп:** `profile_status:write`\n\n## Эквивалентная команда\n\n```bash\npachca profile delete-status \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/delete-status\nПолная справка: `pachca api DELETE /profile/status --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/profile/status","description":"Удаление своего статуса\n\nМетод для удаления своего статуса.","parameters":[],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"profile_status:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление своего статуса\n\n**Метод**: `DELETE`\n\n**Путь**: `/profile/status`\n\n> **Скоуп:** `profile_status:write`\n\nМетод для удаления своего статуса.\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/profile/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/search/chats","summary":"Поиск чатов","scope":"search:chats","plan":null,"auth":true,"paginated":true,"command":"pachca search list-chats","docLink":"https://dev.pachca.com/api/search/list-chats","describe":"# GET /search/chats — Поиск чатов\n\n> **Скоуп:** `search:chats`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `query` — query: Текст поискового запроса\n- `limit` — query: Количество возвращаемых результатов за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page`)\n- `order` — query: Направление сортировки\n- `created_from` — query: Фильтр по дате создания (от)\n- `created_to` — query: Фильтр по дате создания (до)\n- `active` — query: Фильтр по активности чата\n- `chat_subtype` — query: Фильтр по типу чата\n- `personal` — query: Фильтр по личным чатам\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca search list-chats \\\n --query=Разработка \\\n --limit=10 \\\n --order=desc \\\n --created-from=2025-01-01T00:00:00.000Z \\\n --created-to=2025-02-01T00:00:00.000Z \\\n --active \\\n --chat-subtype=discussion \\\n --no-personal \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/search/list-chats\nПолная справка: `pachca api GET /search/chats --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/search/chats","description":"Поиск чатов\n\nМетод для полнотекстового поиска каналов и бесед.","parameters":[{"name":"query","in":"query","description":"Текст поискового запроса","required":false,"schema":{"type":"string","example":"Разработка"},"example":"Разработка","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых результатов за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":100,"example":10,"maximum":100},"example":10,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"example":"desc","$ref":"#/components/schemas/SortOrder"},"example":"desc","explode":false},{"name":"created_from","in":"query","description":"Фильтр по дате создания (от)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"created_to","in":"query","description":"Фильтр по дате создания (до)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"active","in":"query","description":"Фильтр по активности чата","required":false,"schema":{"type":"boolean","example":true},"example":true,"explode":false},{"name":"chat_subtype","in":"query","description":"Фильтр по типу чата","required":false,"schema":{"type":"string","description":"Тип чата","enum":["discussion","thread"],"x-enum-descriptions":{"discussion":"Канал или беседа","thread":"Тред"},"example":"discussion","$ref":"#/components/schemas/ChatSubtype"},"example":"discussion","explode":false},{"name":"personal","in":"query","description":"Фильтр по личным чатам","required":false,"schema":{"type":"boolean","example":false},"example":false,"explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа поисковых результатов с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}},"meta":{"type":"object","description":"Мета-информация для пагинации поисковых результатов","required":["total","paginate"],"properties":{"total":{"type":"integer","format":"int32","description":"Общее количество найденных результатов","example":42},"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"}}}},"$ref":"#/components/schemas/SearchPaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"search:chats","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Поиск чатов\n\n**Метод**: `GET`\n\n**Путь**: `/search/chats`\n\n> **Скоуп:** `search:chats`\n\nМетод для полнотекстового поиска каналов и бесед.\n\n## Параметры\n\n### Query параметры\n\n- `query: string` — Текст поискового запроса\n- `limit: integer, int32` (default: 100) — Количество возвращаемых результатов за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`)\n- `order: string` — Направление сортировки\n Значения: `asc`, `desc`\n- `created_from: date-time` — Фильтр по дате создания (от)\n- `created_to: date-time` — Фильтр по дате создания (до)\n- `active: boolean` — Фильтр по активности чата\n- `chat_subtype: string` — Фильтр по типу чата\n Значения: `discussion`, `thread`\n- `personal: boolean` — Фильтр по личным чатам\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/search/chats?query=Разработка&limit=10&order=desc&created_from=2025-01-01T00:00:00.000Z&created_to=2025-02-01T00:00:00.000Z&active=true&chat_subtype=discussion&personal=false\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n- `meta: object` (required) — Мета-информация для пагинации поисковых результатов\n - `total: integer, int32` (required) — Общее количество найденных результатов. Пример: `42`\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n ],\n \"meta\": {\n \"total\": 42,\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/search/messages","summary":"Поиск сообщений","scope":"search:messages","plan":null,"auth":true,"paginated":true,"command":"pachca search list-messages","docLink":"https://dev.pachca.com/api/search/list-messages","describe":"# GET /search/messages — Поиск сообщений\n\n> **Скоуп:** `search:messages`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `query` — query: Текст поискового запроса\n- `limit` — query: Количество возвращаемых результатов за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page`)\n- `order` — query: Направление сортировки\n- `sort` — query: Сортировка результатов\n- `created_from` — query: Фильтр по дате создания (от)\n- `created_to` — query: Фильтр по дате создания (до)\n- `chat_ids` — query: Фильтр по ID чатов\n- `user_ids` — query: Фильтр по ID авторов сообщений\n- `active` — query: Фильтр по активности чата\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca search list-messages \\\n --query=футболки \\\n --limit=10 \\\n --order=desc \\\n --sort=created_at \\\n --created-from=2025-01-01T00:00:00.000Z \\\n --created-to=2025-02-01T00:00:00.000Z \\\n --chat-ids=198,334 \\\n --user-ids=12,185 \\\n --active \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/search/list-messages\nПолная справка: `pachca api GET /search/messages --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/search/messages","description":"Поиск сообщений\n\nМетод для полнотекстового поиска сообщений.","parameters":[{"name":"query","in":"query","description":"Текст поискового запроса","required":false,"schema":{"type":"string","example":"футболки"},"example":"футболки","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых результатов за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":200,"example":10,"maximum":200},"example":10,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"example":"desc","$ref":"#/components/schemas/SortOrder"},"example":"desc","explode":false},{"name":"sort","in":"query","description":"Сортировка результатов","required":false,"schema":{"default":"created_at","allOf":[{"type":"string","description":"Сортировка результатов поиска сообщений","enum":["created_at","relevance"],"x-enum-descriptions":{"created_at":"По дате создания (хронология)","relevance":"По релевантности"},"$ref":"#/components/schemas/MessageSearchSort"}]},"example":"created_at","explode":false},{"name":"created_from","in":"query","description":"Фильтр по дате создания (от)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"created_to","in":"query","description":"Фильтр по дате создания (до)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"chat_ids","in":"query","description":"Фильтр по ID чатов","required":false,"schema":{"type":"array","example":[198,334],"items":{"type":"integer","format":"int32"}},"example":[198,334],"explode":false},{"name":"user_ids","in":"query","description":"Фильтр по ID авторов сообщений","required":false,"schema":{"type":"array","example":[12,185],"items":{"type":"integer","format":"int32"}},"example":[12,185],"explode":false},{"name":"active","in":"query","description":"Фильтр по активности чата","required":false,"schema":{"type":"boolean","example":true},"example":true,"explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа поисковых результатов с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}},"meta":{"type":"object","description":"Мета-информация для пагинации поисковых результатов","required":["total","paginate"],"properties":{"total":{"type":"integer","format":"int32","description":"Общее количество найденных результатов","example":42},"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"}}}},"$ref":"#/components/schemas/SearchPaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"search:messages","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Поиск сообщений\n\n**Метод**: `GET`\n\n**Путь**: `/search/messages`\n\n> **Скоуп:** `search:messages`\n\nМетод для полнотекстового поиска сообщений.\n\n## Параметры\n\n### Query параметры\n\n- `query: string` — Текст поискового запроса\n- `limit: integer, int32` (default: 200) — Количество возвращаемых результатов за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`)\n- `order: string` — Направление сортировки\n Значения: `asc`, `desc`\n- `sort: string` (default: created_at) — Сортировка результатов\n- `created_from: date-time` — Фильтр по дате создания (от)\n- `created_to: date-time` — Фильтр по дате создания (до)\n- `chat_ids: array` — Фильтр по ID чатов\n- `user_ids: array` — Фильтр по ID авторов сообщений\n- `active: boolean` — Фильтр по активности чата\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/search/messages?query=футболки&limit=10&order=desc&sort=created_at&created_from=2025-01-01T00:00:00.000Z&created_to=2025-02-01T00:00:00.000Z&chat_ids[]=198&chat_ids[]=334&user_ids[]=12&user_ids[]=185&active=true\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n- `meta: object` (required) — Мета-информация для пагинации поисковых результатов\n - `total: integer, int32` (required) — Общее количество найденных результатов. Пример: `42`\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": null\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n ],\n \"meta\": {\n \"total\": 42,\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/search/users","summary":"Поиск сотрудников","scope":"search:users","plan":null,"auth":true,"paginated":true,"command":"pachca search list-users","docLink":"https://dev.pachca.com/api/search/list-users","describe":"# GET /search/users — Поиск сотрудников\n\n> **Скоуп:** `search:users`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `query` — query: Текст поискового запроса\n- `limit` — query: Количество возвращаемых результатов за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page`)\n- `sort` — query: Сортировка результатов\n- `order` — query: Направление сортировки\n- `created_from` — query: Фильтр по дате создания (от)\n- `created_to` — query: Фильтр по дате создания (до)\n- `company_roles` — query: Фильтр по ролям сотрудников\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca search list-users \\\n --query=Олег \\\n --limit=10 \\\n --sort=by_score \\\n --order=desc \\\n --created-from=2025-01-01T00:00:00.000Z \\\n --created-to=2025-02-01T00:00:00.000Z \\\n --company-roles=admin,user \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/search/list-users\nПолная справка: `pachca api GET /search/users --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/search/users","description":"Поиск сотрудников\n\nМетод для полнотекстового поиска сотрудников по имени, email, должности и другим полям.","parameters":[{"name":"query","in":"query","description":"Текст поискового запроса","required":false,"schema":{"type":"string","example":"Олег"},"example":"Олег","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых результатов за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":200,"example":10,"maximum":200},"example":10,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false},{"name":"sort","in":"query","description":"Сортировка результатов","required":false,"schema":{"type":"string","description":"Сортировка результатов поиска","enum":["by_score","alphabetical"],"x-enum-descriptions":{"by_score":"По релевантности","alphabetical":"По алфавиту"},"example":"by_score","$ref":"#/components/schemas/SearchSortOrder"},"example":"by_score","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"example":"desc","$ref":"#/components/schemas/SortOrder"},"example":"desc","explode":false},{"name":"created_from","in":"query","description":"Фильтр по дате создания (от)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"created_to","in":"query","description":"Фильтр по дате создания (до)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"company_roles","in":"query","description":"Фильтр по ролям сотрудников","required":false,"schema":{"type":"array","example":["admin","user"],"items":{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}},"example":["admin","user"],"explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа поисковых результатов с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}},"meta":{"type":"object","description":"Мета-информация для пагинации поисковых результатов","required":["total","paginate"],"properties":{"total":{"type":"integer","format":"int32","description":"Общее количество найденных результатов","example":42},"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"}}}},"$ref":"#/components/schemas/SearchPaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"search:users","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Поиск сотрудников\n\n**Метод**: `GET`\n\n**Путь**: `/search/users`\n\n> **Скоуп:** `search:users`\n\nМетод для полнотекстового поиска сотрудников по имени, email, должности и другим полям.\n\n## Параметры\n\n### Query параметры\n\n- `query: string` — Текст поискового запроса\n- `limit: integer, int32` (default: 200) — Количество возвращаемых результатов за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`)\n- `sort: string` — Сортировка результатов\n Значения: `by_score`, `alphabetical`\n- `order: string` — Направление сортировки\n Значения: `asc`, `desc`\n- `created_from: date-time` — Фильтр по дате создания (от)\n- `created_to: date-time` — Фильтр по дате создания (до)\n- `company_roles: array` — Фильтр по ролям сотрудников\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/search/users?query=Олег&limit=10&sort=by_score&order=desc&created_from=2025-01-01T00:00:00.000Z&created_to=2025-02-01T00:00:00.000Z&company_roles[]=admin&company_roles[]=user\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n- `meta: object` (required) — Мета-информация для пагинации поисковых результатов\n - `total: integer, int32` (required) — Общее количество найденных результатов. Пример: `42`\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n ],\n \"meta\": {\n \"total\": 42,\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"POST","path":"/tasks","summary":"Новое напоминание","scope":"tasks:create","plan":null,"auth":true,"paginated":false,"command":"pachca tasks create","docLink":"https://dev.pachca.com/api/tasks/create","describe":"# POST /tasks — Новое напоминание\n\n> **Скоуп:** `tasks:create`\n\n## Тело запроса\n\n- `task: object` (required) — Собранный объект параметров создаваемого напоминания\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` — Описание (по умолчанию — название типа)\n - `due_at: date-time` — Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).\n - `priority: integer, int32` (default: 1) — Приоритет: 1, 2 (важно) или 3 (очень важно).\n - `performer_ids: array of integer` — Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы)\n - `chat_id: integer, int32` — Идентификатор чата, к которому привязывается напоминание\n - `all_day: boolean` — Напоминание на весь день (без указания времени)\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля\n - `value: string` (required) — Устанавливаемое значение\n\n## Эквивалентная команда\n\n```bash\npachca tasks create \\\n --kind=reminder \\\n --content=\"Забрать со склада 21 заказ\" \\\n --due-at=2020-06-05T12:00:00.000+03:00 \\\n --priority=2 \\\n --performer-ids=12,13 \\\n --chat-id=456 \\\n --no-all-day \\\n --custom-properties='[{\"id\":78,\"value\":\"Синий склад\"}]' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/create\nПолная справка: `pachca api POST /tasks --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/tasks","description":"Новое напоминание\n\nМетод для создания нового напоминания.\n\nПри создании напоминания обязательным условием является указания типа напоминания: звонок, встреча, простое напоминание, событие или письмо. При этом не требуется дополнительное описание - вы просто создадите напоминание с соответствующим текстом. Если вы укажите описание напоминания - то именно оно и станет текстом напоминания.\n\nУ напоминания должны быть ответственные, если их не указывать - ответственным назначается вы.\n\nОтветственным для напоминания без привязки к каким-либо сущностям может стать любой сотрудник компании. Актуальный состав сотрудников компании вы можете получить в методе [список сотрудников](GET /users).\n\nНапоминание можно привязать к чату, указав `chat_id`. Для привязки к чату необходимо быть его участником.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание напоминания","required":["task"],"properties":{"task":{"type":"object","description":"Собранный объект параметров создаваемого напоминания","required":["kind"],"properties":{"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание (по умолчанию — название типа)","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).","example":"2020-06-05T12:00:00.000+03:00"},"priority":{"type":"integer","format":"int32","description":"Приоритет: 1, 2 (важно) или 3 (очень важно).","default":1,"example":2},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы)","example":[12,13],"items":{"type":"integer","format":"int32"}},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязывается напоминание","example":456},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Задаваемые дополнительные поля","items":{"type":"object","required":["id","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":78},"value":{"type":"string","description":"Устанавливаемое значение","example":"Синий склад"}}}}}}},"$ref":"#/components/schemas/TaskCreateRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Напоминание","required":["id","kind","content","due_at","priority","user_id","chat_id","status","created_at","performer_ids","all_day","custom_properties"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор напоминания","example":22283},"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T09:00:00.000Z","nullable":true},"priority":{"type":"integer","format":"int32","description":"Приоритет","example":2},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя-создателя напоминания","example":12},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязано напоминание","example":334,"nullable":true},"status":{"description":"Статус напоминания","example":"undone","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-04T10:37:57.000Z"},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Дополнительные поля напоминания","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}}},"$ref":"#/components/schemas/Task"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"tasks:create","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новое напоминание\n\n**Метод**: `POST`\n\n**Путь**: `/tasks`\n\n> **Скоуп:** `tasks:create`\n\nМетод для создания нового напоминания.\n\nПри создании напоминания обязательным условием является указания типа напоминания: звонок, встреча, простое напоминание, событие или письмо. При этом не требуется дополнительное описание - вы просто создадите напоминание с соответствующим текстом. Если вы укажите описание напоминания - то именно оно и станет текстом напоминания.\n\nУ напоминания должны быть ответственные, если их не указывать - ответственным назначается вы.\n\nОтветственным для напоминания без привязки к каким-либо сущностям может стать любой сотрудник компании. Актуальный состав сотрудников компании вы можете получить в методе [список сотрудников](GET /users).\n\nНапоминание можно привязать к чату, указав `chat_id`. Для привязки к чату необходимо быть его участником.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `task: object` (required) — Собранный объект параметров создаваемого напоминания\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` — Описание (по умолчанию — название типа). Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` — Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).. Пример: `\"2020-06-05T12:00:00.000+03:00\"`\n - `priority: integer, int32` (default: 1) — Приоритет: 1, 2 (важно) или 3 (очень важно).. Пример: `2`\n - `performer_ids: array of integer` — Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы). Пример: `[12,13]`\n - `chat_id: integer, int32` — Идентификатор чата, к которому привязывается напоминание. Пример: `456`\n - `all_day: boolean` — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `78`\n - `value: string` (required) — Устанавливаемое значение. Пример: `\"Синий склад\"`\n\n### Пример\n\n```json\n{\n \"task\": {\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T12:00:00.000+03:00\",\n \"priority\": 2,\n \"performer_ids\": [\n 12,\n 13\n ],\n \"chat_id\": 456,\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 78,\n \"value\": \"Синий склад\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/tasks\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task\": {\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T12:00:00.000+03:00\",\n \"priority\": 2,\n \"performer_ids\": [\n 12,\n 13\n ],\n \"chat_id\": 456,\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 78,\n \"value\": \"Синий склад\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Напоминание\n - `id: integer, int32` (required) — Идентификатор напоминания. Пример: `22283`\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` (required) — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` (required) — Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T09:00:00.000Z\"`\n - `priority: integer, int32` (required) — Приоритет. Пример: `2`\n - `user_id: integer, int32` (required) — Идентификатор пользователя-создателя напоминания. Пример: `12`\n - `chat_id: integer, int32` (required) — Идентификатор чата, к которому привязано напоминание. Пример: `334`\n - `status: string` (required) — Статус напоминания\n Значения: `done` — Выполнено, `undone` — Активно\n - `created_at: date-time` (required) — Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-04T10:37:57.000Z\"`\n - `performer_ids: array of integer` (required) — Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные». Пример: `[12]`\n - `all_day: boolean` (required) — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` (required) — Дополнительные поля напоминания\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 22283,\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T09:00:00.000Z\",\n \"priority\": 2,\n \"user_id\": 12,\n \"chat_id\": 334,\n \"status\": \"undone\",\n \"created_at\": \"2020-06-04T10:37:57.000Z\",\n \"performer_ids\": [\n 12\n ],\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/tasks","summary":"Список напоминаний","scope":"tasks:read","plan":null,"auth":true,"paginated":true,"command":"pachca tasks list","docLink":"https://dev.pachca.com/api/tasks/list","describe":"# GET /tasks — Список напоминаний\n\n> **Скоуп:** `tasks:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca tasks list \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/list\nПолная справка: `pachca api GET /tasks --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/tasks","description":"Список напоминаний\n\nМетод для получения списка напоминаний.","parameters":[{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Напоминание","required":["id","kind","content","due_at","priority","user_id","chat_id","status","created_at","performer_ids","all_day","custom_properties"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор напоминания","example":22283},"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T09:00:00.000Z","nullable":true},"priority":{"type":"integer","format":"int32","description":"Приоритет","example":2},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя-создателя напоминания","example":12},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязано напоминание","example":334,"nullable":true},"status":{"description":"Статус напоминания","example":"undone","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-04T10:37:57.000Z"},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Дополнительные поля напоминания","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}}},"$ref":"#/components/schemas/Task"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"tasks:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список напоминаний\n\n**Метод**: `GET`\n\n**Путь**: `/tasks`\n\n> **Скоуп:** `tasks:read`\n\nМетод для получения списка напоминаний.\n\n## Параметры\n\n### Query параметры\n\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/tasks?limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор напоминания. Пример: `22283`\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` (required) — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` (required) — Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T09:00:00.000Z\"`\n - `priority: integer, int32` (required) — Приоритет. Пример: `2`\n - `user_id: integer, int32` (required) — Идентификатор пользователя-создателя напоминания. Пример: `12`\n - `chat_id: integer, int32` (required) — Идентификатор чата, к которому привязано напоминание. Пример: `334`\n - `status: string` (required) — Статус напоминания\n Значения: `done` — Выполнено, `undone` — Активно\n - `created_at: date-time` (required) — Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-04T10:37:57.000Z\"`\n - `performer_ids: array of integer` (required) — Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные». Пример: `[12]`\n - `all_day: boolean` (required) — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` (required) — Дополнительные поля напоминания\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 22283,\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T09:00:00.000Z\",\n \"priority\": 2,\n \"user_id\": 12,\n \"chat_id\": 334,\n \"status\": \"undone\",\n \"created_at\": \"2020-06-04T10:37:57.000Z\",\n \"performer_ids\": [\n 12\n ],\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/tasks/{id}","summary":"Информация о напоминании","scope":"tasks:read","plan":null,"auth":true,"paginated":false,"command":"pachca tasks get","docLink":"https://dev.pachca.com/api/tasks/get","describe":"# GET /tasks/{id} — Информация о напоминании\n\n> **Скоуп:** `tasks:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор напоминания\n\n## Эквивалентная команда\n\n```bash\npachca tasks get 22283 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/get\nПолная справка: `pachca api GET /tasks/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/tasks/{id}","description":"Информация о напоминании\n\nМетод для получения информации о напоминании.\n\nДля получения напоминания вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор напоминания","required":true,"schema":{"type":"integer","format":"int32","example":22283},"example":22283}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Напоминание","required":["id","kind","content","due_at","priority","user_id","chat_id","status","created_at","performer_ids","all_day","custom_properties"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор напоминания","example":22283},"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T09:00:00.000Z","nullable":true},"priority":{"type":"integer","format":"int32","description":"Приоритет","example":2},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя-создателя напоминания","example":12},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязано напоминание","example":334,"nullable":true},"status":{"description":"Статус напоминания","example":"undone","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-04T10:37:57.000Z"},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Дополнительные поля напоминания","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}}},"$ref":"#/components/schemas/Task"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"tasks:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о напоминании\n\n**Метод**: `GET`\n\n**Путь**: `/tasks/{id}`\n\n> **Скоуп:** `tasks:read`\n\nМетод для получения информации о напоминании.\n\nДля получения напоминания вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор напоминания\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/tasks/22283\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Напоминание\n - `id: integer, int32` (required) — Идентификатор напоминания. Пример: `22283`\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` (required) — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` (required) — Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T09:00:00.000Z\"`\n - `priority: integer, int32` (required) — Приоритет. Пример: `2`\n - `user_id: integer, int32` (required) — Идентификатор пользователя-создателя напоминания. Пример: `12`\n - `chat_id: integer, int32` (required) — Идентификатор чата, к которому привязано напоминание. Пример: `334`\n - `status: string` (required) — Статус напоминания\n Значения: `done` — Выполнено, `undone` — Активно\n - `created_at: date-time` (required) — Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-04T10:37:57.000Z\"`\n - `performer_ids: array of integer` (required) — Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные». Пример: `[12]`\n - `all_day: boolean` (required) — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` (required) — Дополнительные поля напоминания\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 22283,\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T09:00:00.000Z\",\n \"priority\": 2,\n \"user_id\": 12,\n \"chat_id\": 334,\n \"status\": \"undone\",\n \"created_at\": \"2020-06-04T10:37:57.000Z\",\n \"performer_ids\": [\n 12\n ],\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/tasks/{id}","summary":"Редактирование напоминания","scope":"tasks:update","plan":null,"auth":true,"paginated":false,"command":"pachca tasks update","docLink":"https://dev.pachca.com/api/tasks/update","describe":"# PUT /tasks/{id} — Редактирование напоминания\n\n> **Скоуп:** `tasks:update`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор напоминания\n\n## Тело запроса\n\n- `task: object` (required) — Собранный объект параметров обновляемого напоминания\n - `kind: string` — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` — Описание\n - `due_at: date-time` — Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).\n - `priority: integer, int32` — Приоритет: 1, 2 (важно) или 3 (очень важно).\n - `performer_ids: array of integer` — Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные»\n - `status: string` — Статус\n Значения: `done` — Выполнено, `undone` — Активно\n - `all_day: boolean` — Напоминание на весь день (без указания времени)\n - `done_at: date-time` — Дата и время выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля\n - `value: string` (required) — Устанавливаемое значение\n\n## Эквивалентная команда\n\n```bash\npachca tasks update 22283 \\\n --content=\"Забрать со склада 21 заказ\" \\\n --due-at=2020-06-05T12:00:00.000+03:00 \\\n --priority=2 \\\n --performer-ids=12 \\\n --status=done \\\n --no-all-day \\\n --done-at=2020-06-05T12:00:00.000Z \\\n --custom-properties='[{\"id\":78,\"value\":\"Синий склад\"}]' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/update\nПолная справка: `pachca api PUT /tasks/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/tasks/{id}","description":"Редактирование напоминания\n\nМетод для редактирования напоминания.\n\nДля редактирования напоминания вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры напоминания указываются в теле запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор напоминания","required":true,"schema":{"type":"integer","format":"int32","example":22283},"example":22283}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на обновление напоминания","required":["task"],"properties":{"task":{"type":"object","description":"Собранный объект параметров обновляемого напоминания","properties":{"kind":{"description":"Тип","default":"reminder","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).","example":"2020-06-05T12:00:00.000+03:00"},"priority":{"type":"integer","format":"int32","description":"Приоритет: 1, 2 (важно) или 3 (очень важно).","example":2},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"status":{"description":"Статус","example":"done","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"done_at":{"type":"string","format":"date-time","description":"Дата и время выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T12:00:00.000Z"},"custom_properties":{"type":"array","description":"Задаваемые дополнительные поля","items":{"type":"object","required":["id","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":78},"value":{"type":"string","description":"Устанавливаемое значение","example":"Синий склад"}}}}}}},"$ref":"#/components/schemas/TaskUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Напоминание","required":["id","kind","content","due_at","priority","user_id","chat_id","status","created_at","performer_ids","all_day","custom_properties"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор напоминания","example":22283},"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T09:00:00.000Z","nullable":true},"priority":{"type":"integer","format":"int32","description":"Приоритет","example":2},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя-создателя напоминания","example":12},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязано напоминание","example":334,"nullable":true},"status":{"description":"Статус напоминания","example":"undone","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-04T10:37:57.000Z"},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Дополнительные поля напоминания","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}}},"$ref":"#/components/schemas/Task"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"tasks:update","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Редактирование напоминания\n\n**Метод**: `PUT`\n\n**Путь**: `/tasks/{id}`\n\n> **Скоуп:** `tasks:update`\n\nМетод для редактирования напоминания.\n\nДля редактирования напоминания вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры напоминания указываются в теле запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор напоминания\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `task: object` (required) — Собранный объект параметров обновляемого напоминания\n - `kind: string` — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` — Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).. Пример: `\"2020-06-05T12:00:00.000+03:00\"`\n - `priority: integer, int32` — Приоритет: 1, 2 (важно) или 3 (очень важно).. Пример: `2`\n - `performer_ids: array of integer` — Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные». Пример: `[12]`\n - `status: string` — Статус\n Значения: `done` — Выполнено, `undone` — Активно\n - `all_day: boolean` — Напоминание на весь день (без указания времени). Пример: `false`\n - `done_at: date-time` — Дата и время выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T12:00:00.000Z\"`\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `78`\n - `value: string` (required) — Устанавливаемое значение. Пример: `\"Синий склад\"`\n\n### Пример\n\n```json\n{\n \"task\": {\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T12:00:00.000+03:00\",\n \"priority\": 2,\n \"performer_ids\": [\n 12\n ],\n \"status\": \"done\",\n \"all_day\": false,\n \"done_at\": \"2020-06-05T12:00:00.000Z\",\n \"custom_properties\": [\n {\n \"id\": 78,\n \"value\": \"Синий склад\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/tasks/22283\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task\": {\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T12:00:00.000+03:00\",\n \"priority\": 2,\n \"performer_ids\": [\n 12\n ],\n \"status\": \"done\",\n \"all_day\": false,\n \"done_at\": \"2020-06-05T12:00:00.000Z\",\n \"custom_properties\": [\n {\n \"id\": 78,\n \"value\": \"Синий склад\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Напоминание\n - `id: integer, int32` (required) — Идентификатор напоминания. Пример: `22283`\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` (required) — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` (required) — Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T09:00:00.000Z\"`\n - `priority: integer, int32` (required) — Приоритет. Пример: `2`\n - `user_id: integer, int32` (required) — Идентификатор пользователя-создателя напоминания. Пример: `12`\n - `chat_id: integer, int32` (required) — Идентификатор чата, к которому привязано напоминание. Пример: `334`\n - `status: string` (required) — Статус напоминания\n Значения: `done` — Выполнено, `undone` — Активно\n - `created_at: date-time` (required) — Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-04T10:37:57.000Z\"`\n - `performer_ids: array of integer` (required) — Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные». Пример: `[12]`\n - `all_day: boolean` (required) — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` (required) — Дополнительные поля напоминания\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 22283,\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T09:00:00.000Z\",\n \"priority\": 2,\n \"user_id\": 12,\n \"chat_id\": 334,\n \"status\": \"undone\",\n \"created_at\": \"2020-06-04T10:37:57.000Z\",\n \"performer_ids\": [\n 12\n ],\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/tasks/{id}","summary":"Удаление напоминания","scope":"tasks:delete","plan":null,"auth":true,"paginated":false,"command":"pachca tasks delete","docLink":"https://dev.pachca.com/api/tasks/delete","describe":"# DELETE /tasks/{id} — Удаление напоминания\n\n> **Скоуп:** `tasks:delete`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор напоминания\n\n## Эквивалентная команда\n\n```bash\npachca tasks delete 22283 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/delete\nПолная справка: `pachca api DELETE /tasks/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/tasks/{id}","description":"Удаление напоминания\n\nМетод для удаления напоминания.\n\nДля удаления напоминания вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор напоминания","required":true,"schema":{"type":"integer","format":"int32","example":22283},"example":22283}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"tasks:delete","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление напоминания\n\n**Метод**: `DELETE`\n\n**Путь**: `/tasks/{id}`\n\n> **Скоуп:** `tasks:delete`\n\nМетод для удаления напоминания.\n\nДля удаления напоминания вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор напоминания\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/tasks/22283\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/threads","summary":"Список тредов","scope":"threads:read","plan":null,"auth":true,"paginated":true,"command":"pachca threads list","docLink":"https://dev.pachca.com/api/threads/list","describe":"# GET /threads — Список тредов\n\n> **Скоуп:** `threads:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `last_message_at_after` — query: Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `last_message_at_before` — query: Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca threads list \\\n --last-message-at-after=2025-01-01T00:00:00.000Z \\\n --last-message-at-before=2025-02-01T00:00:00.000Z \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/threads/list\nПолная справка: `pachca api GET /threads --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/threads","description":"Список тредов\n\nМетод для получения списка доступных тредов.\n\nВозвращаются треды, у которых вы являетесь участником чата треда либо чата, в котором был создан тред. Публичные чаты, в которых вы не состоите, в выдачу не попадают — чтобы такой тред попал в список, нужно быть участником чата треда или чата, в котором был создан тред.\n\nСортировка — по убыванию времени последнего сообщения в треде.","parameters":[{"name":"last_message_at_after","in":"query","description":"Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"last_message_at_before","in":"query","description":"Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Тред","required":["id","chat_id","message_id","message_chat_id","updated_at"],"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред)","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages))","example":2637266155},"message_id":{"type":"integer","format":"int64","description":"Идентификатор сообщения, к которому был создан тред","example":154332686},"message_chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата сообщения","example":2637266154},"updated_at":{"type":"string","format":"date-time","description":"Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2023-02-01T19:20:47.204Z"}},"$ref":"#/components/schemas/Thread"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"threads:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список тредов\n\n**Метод**: `GET`\n\n**Путь**: `/threads`\n\n> **Скоуп:** `threads:read`\n\nМетод для получения списка доступных тредов.\n\nВозвращаются треды, у которых вы являетесь участником чата треда либо чата, в котором был создан тред. Публичные чаты, в которых вы не состоите, в выдачу не попадают — чтобы такой тред попал в список, нужно быть участником чата треда или чата, в котором был создан тред.\n\nСортировка — по убыванию времени последнего сообщения в треде.\n\n## Параметры\n\n### Query параметры\n\n- `last_message_at_after: date-time` — Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `last_message_at_before: date-time` — Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/threads?last_message_at_after=2025-01-01T00:00:00.000Z&last_message_at_before=2025-02-01T00:00:00.000Z&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int64` (required) — Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред). Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages)). Пример: `2637266155`\n - `message_id: integer, int64` (required) — Идентификатор сообщения, к которому был создан тред. Пример: `154332686`\n - `message_chat_id: integer, int64` (required) — Идентификатор чата сообщения. Пример: `2637266154`\n - `updated_at: date-time` (required) — Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2023-02-01T19:20:47.204Z\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 265142,\n \"chat_id\": 2637266155,\n \"message_id\": 154332686,\n \"message_chat_id\": 2637266154,\n \"updated_at\": \"2023-02-01T19:20:47.204Z\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/threads/{id}","summary":"Информация о треде","scope":"threads:read","plan":null,"auth":true,"paginated":false,"command":"pachca threads get","docLink":"https://dev.pachca.com/api/threads/get","describe":"# GET /threads/{id} — Информация о треде\n\n> **Скоуп:** `threads:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор треда\n\n## Эквивалентная команда\n\n```bash\npachca threads get 265142 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/threads/get\nПолная справка: `pachca api GET /threads/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/threads/{id}","description":"Информация о треде\n\nМетод для получения информации о треде.\n\nДля получения треда вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор треда","required":true,"schema":{"type":"integer","format":"int32","example":265142},"example":265142}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тред","required":["id","chat_id","message_id","message_chat_id","updated_at"],"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред)","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages))","example":2637266155},"message_id":{"type":"integer","format":"int64","description":"Идентификатор сообщения, к которому был создан тред","example":154332686},"message_chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата сообщения","example":2637266154},"updated_at":{"type":"string","format":"date-time","description":"Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2023-02-01T19:20:47.204Z"}},"$ref":"#/components/schemas/Thread"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"threads:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о треде\n\n**Метод**: `GET`\n\n**Путь**: `/threads/{id}`\n\n> **Скоуп:** `threads:read`\n\nМетод для получения информации о треде.\n\nДля получения треда вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор треда\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/threads/265142\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тред\n - `id: integer, int64` (required) — Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред). Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages)). Пример: `2637266155`\n - `message_id: integer, int64` (required) — Идентификатор сообщения, к которому был создан тред. Пример: `154332686`\n - `message_chat_id: integer, int64` (required) — Идентификатор чата сообщения. Пример: `2637266154`\n - `updated_at: date-time` (required) — Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2023-02-01T19:20:47.204Z\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 265142,\n \"chat_id\": 2637266155,\n \"message_id\": 154332686,\n \"message_chat_id\": 2637266154,\n \"updated_at\": \"2023-02-01T19:20:47.204Z\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/uploads","summary":"Получение подписи, ключа и других параметров","scope":"uploads:write","plan":null,"auth":true,"paginated":false,"command":"pachca files uploads","docLink":"https://dev.pachca.com/api/files/uploads","describe":"# POST /uploads — Получение подписи, ключа и других параметров\n\n> **Скоуп:** `uploads:write`\n\n## Эквивалентная команда\n\n```bash\npachca files uploads \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/files/uploads\nПолная справка: `pachca api POST /uploads --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/uploads","description":"Получение подписи, ключа и других параметров\n\nМетод для получения подписи, ключа и других параметров, необходимых для загрузки файла.\n\nДанный метод необходимо использовать для загрузки каждого файла.","parameters":[],"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Параметры для загрузки файла","required":["Content-Disposition","acl","policy","x-amz-credential","x-amz-algorithm","x-amz-date","x-amz-signature","key","direct_url"],"properties":{"Content-Disposition":{"type":"string","description":"Используемый заголовок (в данном запросе — attachment)","example":"attachment"},"acl":{"type":"string","description":"Уровень безопасности (в данном запросе — private)","example":"private"},"policy":{"type":"string","description":"Уникальная policy для загрузки файла","example":"eyJloNBpcmF0aW9uIjoiMjAyPi0xMi0wOFQwNjo1NzozNFHusCJjb82kaXRpb25zIjpbeyJidWNrZXQiOiJwYWNoY2EtcHJhYy11cGxvYWRzOu0sWyJzdGFydHMtd3l4aCIsIiRrZXkiLCJhdHRhY8hlcy9maWxlcy1xODUyMSJdLHsiQ29udGVudC1EaXNwb3NpdGlvbiI6ImF0dGFjaG1lbnQifSx2ImFjbCI3InByaXZhdGUifSx7IngtYW16LWNyZWRlbnRpYWwi2iIxNDIxNTVfc3RhcGx4LzIwMjIxMTI0L2J1LTFhL5MzL1F2czRfcmVxdWVzdCJ9LHsieC1hbXotYWxnb3JpdGhtIjytQVdTNC1ITUFDLVNIQTI1NiJ7LHsieC1hbXotZGF0ZSI6IjIwMjIxMTI0VDA2NTczNFoifV12"},"x-amz-credential":{"type":"string","description":"x-amz-credential для загрузки файла","example":"286471_server/20211122/kz-6x/s3/aws4_request"},"x-amz-algorithm":{"type":"string","description":"Используемый алгоритм (в данном запросе — AWS4-HMAC-SHA256)","example":"AWS4-HMAC-SHA256"},"x-amz-date":{"type":"string","description":"Уникальный x-amz-date для загрузки файла","example":"20211122T065734Z"},"x-amz-signature":{"type":"string","description":"Уникальная подпись для загрузки файла","example":"87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475"},"key":{"type":"string","description":"Уникальный ключ для загрузки файла","example":"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/${filename}"},"direct_url":{"type":"string","description":"Адрес для загрузки файла","example":"https://api.pachca.com/api/v3/direct_upload"}},"$ref":"#/components/schemas/UploadParams"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"uploads:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Получение подписи, ключа и других параметров\n\n**Метод**: `POST`\n\n**Путь**: `/uploads`\n\n> **Скоуп:** `uploads:write`\n\nМетод для получения подписи, ключа и других параметров, необходимых для загрузки файла.\n\nДанный метод необходимо использовать для загрузки каждого файла.\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/uploads\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `Content-Disposition: string` (required) — Используемый заголовок (в данном запросе — attachment). Пример: `\"attachment\"`\n- `acl: string` (required) — Уровень безопасности (в данном запросе — private). Пример: `\"private\"`\n- `policy: string` (required) — Уникальная policy для загрузки файла. Пример: `\"eyJloNBpcmF0aW9uIjoiMjAyPi0xMi0wOFQwNjo1NzozNFHusCJjb82kaXRpb25zIjpbeyJidWNrZXQiOiJwYWNoY2EtcHJhYy11cGxvYWRzOu0sWyJzdGFydHMtd3l4aCIsIiRrZXkiLCJhdHRhY8hlcy9maWxlcy1xODUyMSJdLHsiQ29udGVudC1EaXNwb3NpdGlvbiI6ImF0dGFjaG1lbnQifSx2ImFjbCI3InByaXZhdGUifSx7IngtYW16LWNyZWRlbnRpYWwi2iIxNDIxNTVfc3RhcGx4LzIwMjIxMTI0L2J1LTFhL5MzL1F2czRfcmVxdWVzdCJ9LHsieC1hbXotYWxnb3JpdGhtIjytQVdTNC1ITUFDLVNIQTI1NiJ7LHsieC1hbXotZGF0ZSI6IjIwMjIxMTI0VDA2NTczNFoifV12\"`\n- `x-amz-credential: string` (required) — x-amz-credential для загрузки файла. Пример: `\"286471_server/20211122/kz-6x/s3/aws4_request\"`\n- `x-amz-algorithm: string` (required) — Используемый алгоритм (в данном запросе — AWS4-HMAC-SHA256). Пример: `\"AWS4-HMAC-SHA256\"`\n- `x-amz-date: string` (required) — Уникальный x-amz-date для загрузки файла. Пример: `\"20211122T065734Z\"`\n- `x-amz-signature: string` (required) — Уникальная подпись для загрузки файла. Пример: `\"87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475\"`\n- `key: string` (required) — Уникальный ключ для загрузки файла. Пример: `\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/${filename}\"`\n- `direct_url: string` (required) — Адрес для загрузки файла. Пример: `\"https://api.pachca.com/api/v3/direct_upload\"`\n\n**Пример ответа:**\n\n```json\n{\n \"Content-Disposition\": \"attachment\",\n \"acl\": \"private\",\n \"policy\": \"eyJloNBpcmF0aW9uIjoiMjAyPi0xMi0wOFQwNjo1NzozNFHusCJjb82kaXRpb25zIjpbeyJidWNrZXQiOiJwYWNoY2EtcHJhYy11cGxvYWRzOu0sWyJzdGFydHMtd3l4aCIsIiRrZXkiLCJhdHRhY8hlcy9maWxlcy1xODUyMSJdLHsiQ29udGVudC1EaXNwb3NpdGlvbiI6ImF0dGFjaG1lbnQifSx2ImFjbCI3InByaXZhdGUifSx7IngtYW16LWNyZWRlbnRpYWwi2iIxNDIxNTVfc3RhcGx4LzIwMjIxMTI0L2J1LTFhL5MzL1F2czRfcmVxdWVzdCJ9LHsieC1hbXotYWxnb3JpdGhtIjytQVdTNC1ITUFDLVNIQTI1NiJ7LHsieC1hbXotZGF0ZSI6IjIwMjIxMTI0VDA2NTczNFoifV12\",\n \"x-amz-credential\": \"286471_server/20211122/kz-6x/s3/aws4_request\",\n \"x-amz-algorithm\": \"AWS4-HMAC-SHA256\",\n \"x-amz-date\": \"20211122T065734Z\",\n \"x-amz-signature\": \"87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475\",\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/${filename}\",\n \"direct_url\": \"https://api.pachca.com/api/v3/direct_upload\"\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"POST","path":"/users","summary":"Новый сотрудник","scope":"users:create","plan":null,"auth":true,"paginated":false,"command":"pachca users create","docLink":"https://dev.pachca.com/api/users/create","describe":"# POST /users — Новый сотрудник\n\n> **Скоуп:** `users:create`\n\n## Тело запроса\n\n- `user: object` (required)\n - `first_name: string` — Имя\n - `last_name: string` — Фамилия\n - `email: string` (required) — Электронная почта\n - `phone_number: string` — Телефон\n - `nickname: string` — Имя пользователя\n - `department: string` — Департамент\n - `title: string` — Должность\n - `role: string` — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (default: false) — Деактивация пользователя\n - `list_tags: array of string` — Массив тегов, привязываемых к сотруднику\n - `chat_ids: array of integer` — Идентификаторы чатов, в которые сотрудник будет добавлен сразу при создании. Для роли `guest` параметр обязателен и должен содержать ровно один активный чат.\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля\n - `value: string` (required) — Устанавливаемое значение\n- `skip_email_notify: boolean` (default: false) — Пропуск этапа отправки приглашения сотруднику. Сотруднику не будет отправлено письмо на электронную почту с приглашением создать аккаунт. Полезно при предварительном создании аккаунтов перед входом через SSO.\n\n## Эквивалентная команда\n\n```bash\npachca users create \\\n --first-name=Олег \\\n --last-name=Петров \\\n --email=olegp@example.com \\\n --phone-number=+79001234567 \\\n --nickname=olegpetrov \\\n --department=Продукт \\\n --title=CIO \\\n --role=user \\\n --list-tags=Product,Design \\\n --chat-ids=12345 \\\n --custom-properties='[{\"id\":1678,\"value\":\"Санкт-Петербург\"}]' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/create\nПолная справка: `pachca api POST /users --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/users","description":"Новый сотрудник\n\nМетод для создания нового сотрудника в вашей компании.\n\nВы можете заполнять дополнительные поля сотрудника, которые созданы в вашей компании. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).\n\nЧерез параметр `chat_ids` сотрудника можно сразу добавить в указанные чаты. Чтобы создать гостя, передайте `role: \"guest\"` — для этой роли `chat_ids` обязателен и должен содержать ровно один активный чат, в который у токена есть право добавлять участников. При нарушении правил гостевого доступа возвращается `400` с ошибкой по полю `chat_ids`.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание сотрудника","required":["user"],"properties":{"user":{"type":"object","required":["email"],"properties":{"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров"},"email":{"type":"string","description":"Электронная почта","example":"olegp@example.com"},"phone_number":{"type":"string","description":"Телефон","example":"+79001234567"},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"department":{"type":"string","description":"Департамент","example":"Продукт"},"title":{"type":"string","description":"Должность","example":"CIO"},"role":{"description":"Уровень доступа","example":"user","allOf":[{"type":"string","description":"Роль пользователя, допустимая при создании сотрудника. В отличие от редактирования, при создании можно назначить роль `guest` — в этом случае параметр `chat_ids` обязателен и должен содержать ровно один чат.","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserCreateRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","default":false,"example":false},"list_tags":{"type":"array","description":"Массив тегов, привязываемых к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"chat_ids":{"type":"array","description":"Идентификаторы чатов, в которые сотрудник будет добавлен сразу при создании. Для роли `guest` параметр обязателен и должен содержать ровно один активный чат.","example":[12345],"items":{"type":"integer","format":"int32"}},"custom_properties":{"type":"array","description":"Задаваемые дополнительные поля","items":{"type":"object","required":["id","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"value":{"type":"string","description":"Устанавливаемое значение","example":"Санкт-Петербург"}}}}}},"skip_email_notify":{"type":"boolean","description":"Пропуск этапа отправки приглашения сотруднику. Сотруднику не будет отправлено письмо на электронную почту с приглашением создать аккаунт. Полезно при предварительном создании аккаунтов перед входом через SSO.","default":false,"example":false}},"$ref":"#/components/schemas/UserCreateRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:create","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Новый сотрудник\n\n**Метод**: `POST`\n\n**Путь**: `/users`\n\n> **Скоуп:** `users:create`\n\nМетод для создания нового сотрудника в вашей компании.\n\nВы можете заполнять дополнительные поля сотрудника, которые созданы в вашей компании. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).\n\nЧерез параметр `chat_ids` сотрудника можно сразу добавить в указанные чаты. Чтобы создать гостя, передайте `role: \"guest\"` — для этой роли `chat_ids` обязателен и должен содержать ровно один активный чат, в который у токена есть право добавлять участников. При нарушении правил гостевого доступа возвращается `400` с ошибкой по полю `chat_ids`.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `user: object` (required)\n - `first_name: string` — Имя. Пример: `\"Олег\"`\n - `last_name: string` — Фамилия. Пример: `\"Петров\"`\n - `email: string` (required) — Электронная почта. Пример: `\"olegp@example.com\"`\n - `phone_number: string` — Телефон. Пример: `\"+79001234567\"`\n - `nickname: string` — Имя пользователя. Пример: `\"olegpetrov\"`\n - `department: string` — Департамент. Пример: `\"Продукт\"`\n - `title: string` — Должность. Пример: `\"CIO\"`\n - `role: string` — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (default: false) — Деактивация пользователя. Пример: `false`\n - `list_tags: array of string` — Массив тегов, привязываемых к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `chat_ids: array of integer` — Идентификаторы чатов, в которые сотрудник будет добавлен сразу при создании. Для роли `guest` параметр обязателен и должен содержать ровно один активный чат.. Пример: `[12345]`\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `value: string` (required) — Устанавливаемое значение. Пример: `\"Санкт-Петербург\"`\n- `skip_email_notify: boolean` (default: false) — Пропуск этапа отправки приглашения сотруднику. Сотруднику не будет отправлено письмо на электронную почту с приглашением создать аккаунт. Полезно при предварительном создании аккаунтов перед входом через SSO.. Пример: `false`\n\n### Пример\n\n```json\n{\n \"user\": {\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"nickname\": \"olegpetrov\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"user\",\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"chat_ids\": [\n 12345\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/users\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"user\": {\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"nickname\": \"olegpetrov\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"user\",\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"chat_ids\": [\n 12345\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сотрудник\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/users","summary":"Список сотрудников","scope":"users:read","plan":null,"auth":true,"paginated":true,"command":"pachca users list","docLink":"https://dev.pachca.com/api/users/list","describe":"# GET /users — Список сотрудников\n\n> **Скоуп:** `users:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `query` — query: Поисковая фраза для фильтрации результатов. Поиск работает по полям: `first_name` (имя), `last_name` (фамилия), `email` (электронная почта), `phone_number` (телефон) и `nickname` (никнейм).\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca users list \\\n --query=Олег \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/list\nПолная справка: `pachca api GET /users --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/users","description":"Список сотрудников\n\nМетод для получения актуального списка сотрудников вашей компании.","parameters":[{"name":"query","in":"query","description":"Поисковая фраза для фильтрации результатов. Поиск работает по полям: `first_name` (имя), `last_name` (фамилия), `email` (электронная почта), `phone_number` (телефон) и `nickname` (никнейм).","required":false,"schema":{"type":"string","example":"Олег"},"example":"Олег","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список сотрудников\n\n**Метод**: `GET`\n\n**Путь**: `/users`\n\n> **Скоуп:** `users:read`\n\nМетод для получения актуального списка сотрудников вашей компании.\n\n## Параметры\n\n### Query параметры\n\n- `query: string` — Поисковая фраза для фильтрации результатов. Поиск работает по полям: `first_name` (имя), `last_name` (фамилия), `email` (электронная почта), `phone_number` (телефон) и `nickname` (никнейм).\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/users?query=Олег&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/users/{id}","summary":"Информация о сотруднике","scope":"users:read","plan":null,"auth":true,"paginated":false,"command":"pachca users get","docLink":"https://dev.pachca.com/api/users/get","describe":"# GET /users/{id} — Информация о сотруднике\n\n> **Скоуп:** `users:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users get 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/get\nПолная справка: `pachca api GET /users/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/users/{id}","description":"Информация о сотруднике\n\nМетод для получения информации о сотруднике.\n\nДля получения сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о сотруднике\n\n**Метод**: `GET`\n\n**Путь**: `/users/{id}`\n\n> **Скоуп:** `users:read`\n\nМетод для получения информации о сотруднике.\n\nДля получения сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/users/12\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сотрудник\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/users/{id}","summary":"Редактирование сотрудника","scope":"users:update","plan":null,"auth":true,"paginated":false,"command":"pachca users update","docLink":"https://dev.pachca.com/api/users/update","describe":"# PUT /users/{id} — Редактирование сотрудника\n\n> **Скоуп:** `users:update`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор пользователя\n\n## Тело запроса\n\n- `user: object` (required) — Собранный объект параметров редактируемого сотрудника\n - `first_name: string` — Имя\n - `last_name: string` — Фамилия\n - `email: string` — Электронная почта\n - `phone_number: string` — Телефон\n - `nickname: string` — Имя пользователя\n - `department: string` — Департамент\n - `title: string` — Должность\n - `role: string` — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость\n - `suspended: boolean` (default: false) — Деактивация пользователя\n - `list_tags: array of string` — Массив тегов, привязываемых к сотруднику\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля\n - `value: string` (required) — Устанавливаемое значение\n\n## Эквивалентная команда\n\n```bash\npachca users update 12 \\\n --first-name=Олег \\\n --last-name=Петров \\\n --email=olegpetrov@example.com \\\n --phone-number=+79001234567 \\\n --nickname=olegpetrov \\\n --department=\"Отдел разработки\" \\\n --title=\"Старший разработчик\" \\\n --role=user \\\n --list-tags=Product \\\n --custom-properties='[{\"id\":1678,\"value\":\"Санкт-Петербург\"}]' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/update\nПолная справка: `pachca api PUT /users/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/users/{id}","description":"Редактирование сотрудника\n\nМетод для редактирования сотрудника.\n\nДля редактирования сотрудника вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сотрудника указываются в теле запроса. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).","parameters":[{"name":"id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на редактирование сотрудника","required":["user"],"properties":{"user":{"type":"object","description":"Собранный объект параметров редактируемого сотрудника","properties":{"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров"},"email":{"type":"string","description":"Электронная почта","example":"olegpetrov@example.com"},"phone_number":{"type":"string","description":"Телефон","example":"+79001234567"},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"department":{"type":"string","description":"Департамент","example":"Отдел разработки"},"title":{"type":"string","description":"Должность","example":"Старший разработчик"},"role":{"description":"Уровень доступа","example":"user","allOf":[{"type":"string","description":"Роль пользователя, допустимая при редактировании сотрудника. Роль `guest` недоступна для установки через API при редактировании — назначить роль `guest` можно только при создании сотрудника (см. `UserCreateRole`).","enum":["admin","user","multi_guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость"},"$ref":"#/components/schemas/UserRoleInput"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","default":false,"example":false},"list_tags":{"type":"array","description":"Массив тегов, привязываемых к сотруднику","example":["Product"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Задаваемые дополнительные поля","items":{"type":"object","required":["id","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"value":{"type":"string","description":"Устанавливаемое значение","example":"Санкт-Петербург"}}}}}}},"$ref":"#/components/schemas/UserUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:update","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Редактирование сотрудника\n\n**Метод**: `PUT`\n\n**Путь**: `/users/{id}`\n\n> **Скоуп:** `users:update`\n\nМетод для редактирования сотрудника.\n\nДля редактирования сотрудника вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сотрудника указываются в теле запроса. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `user: object` (required) — Собранный объект параметров редактируемого сотрудника\n - `first_name: string` — Имя. Пример: `\"Олег\"`\n - `last_name: string` — Фамилия. Пример: `\"Петров\"`\n - `email: string` — Электронная почта. Пример: `\"olegpetrov@example.com\"`\n - `phone_number: string` — Телефон. Пример: `\"+79001234567\"`\n - `nickname: string` — Имя пользователя. Пример: `\"olegpetrov\"`\n - `department: string` — Департамент. Пример: `\"Отдел разработки\"`\n - `title: string` — Должность. Пример: `\"Старший разработчик\"`\n - `role: string` — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость\n - `suspended: boolean` (default: false) — Деактивация пользователя. Пример: `false`\n - `list_tags: array of string` — Массив тегов, привязываемых к сотруднику. Пример: `[\"Product\"]`\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `value: string` (required) — Устанавливаемое значение. Пример: `\"Санкт-Петербург\"`\n\n### Пример\n\n```json\n{\n \"user\": {\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"email\": \"olegpetrov@example.com\",\n \"phone_number\": \"+79001234567\",\n \"nickname\": \"olegpetrov\",\n \"department\": \"Отдел разработки\",\n \"title\": \"Старший разработчик\",\n \"role\": \"user\",\n \"list_tags\": [\n \"Product\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/users/12\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"user\": {\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"email\": \"olegpetrov@example.com\",\n \"phone_number\": \"+79001234567\",\n \"nickname\": \"olegpetrov\",\n \"department\": \"Отдел разработки\",\n \"title\": \"Старший разработчик\",\n \"role\": \"user\",\n \"list_tags\": [\n \"Product\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сотрудник\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/users/{id}","summary":"Удаление сотрудника","scope":"users:delete","plan":null,"auth":true,"paginated":false,"command":"pachca users delete","docLink":"https://dev.pachca.com/api/users/delete","describe":"# DELETE /users/{id} — Удаление сотрудника\n\n> **Скоуп:** `users:delete`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users delete 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/delete\nПолная справка: `pachca api DELETE /users/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/users/{id}","description":"Удаление сотрудника\n\nМетод для удаления сотрудника.\n\nДля удаления сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:delete","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Удаление сотрудника\n\n**Метод**: `DELETE`\n\n**Путь**: `/users/{id}`\n\n> **Скоуп:** `users:delete`\n\nМетод для удаления сотрудника.\n\nДля удаления сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/users/12\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/users/{user_id}/avatar","summary":"Загрузка аватара сотрудника","scope":"user_avatar:write","plan":null,"auth":true,"paginated":false,"command":"pachca users update-avatar","docLink":"https://dev.pachca.com/api/users/update-avatar","describe":"# PUT /users/{user_id}/avatar — Загрузка аватара сотрудника\n\n> **Скоуп:** `user_avatar:write`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Тело запроса\n\n- `image: binary` (required) — Файл изображения для аватара\n\n## Эквивалентная команда\n\n```bash\npachca users update-avatar 12 \\\n --file=./image.jpg \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/update-avatar\nПолная справка: `pachca api PUT /users/{user_id}/avatar --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/users/{user_id}/avatar","description":"Загрузка аватара сотрудника\n\nМетод для загрузки или обновления аватара сотрудника. Файл передается в формате `multipart/form-data`.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary","description":"Файл изображения для аватара"}}}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Данные аватара","required":["image_url"],"properties":{"image_url":{"type":"string","description":"URL аватара","example":"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg"}},"$ref":"#/components/schemas/AvatarData"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_avatar:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Загрузка аватара сотрудника\n\n**Метод**: `PUT`\n\n**Путь**: `/users/{user_id}/avatar`\n\n> **Скоуп:** `user_avatar:write`\n\nМетод для загрузки или обновления аватара сотрудника. Файл передается в формате `multipart/form-data`.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `multipart/form-data`\n\n### Схема\n\n- `image: binary` (required) — Файл изображения для аватара\n\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/users/12/avatar\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -F \"image=@filename.png\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Данные аватара\n - `image_url: string` (required) — URL аватара. Пример: `\"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"image_url\": \"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/users/{user_id}/avatar","summary":"Удаление аватара сотрудника","scope":"user_avatar:write","plan":null,"auth":true,"paginated":false,"command":"pachca users remove-avatar","docLink":"https://dev.pachca.com/api/users/remove-avatar","describe":"# DELETE /users/{user_id}/avatar — Удаление аватара сотрудника\n\n> **Скоуп:** `user_avatar:write`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users remove-avatar 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/remove-avatar\nПолная справка: `pachca api DELETE /users/{user_id}/avatar --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/users/{user_id}/avatar","description":"Удаление аватара сотрудника\n\nМетод для удаления аватара сотрудника.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_avatar:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Удаление аватара сотрудника\n\n**Метод**: `DELETE`\n\n**Путь**: `/users/{user_id}/avatar`\n\n> **Скоуп:** `user_avatar:write`\n\nМетод для удаления аватара сотрудника.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/users/12/avatar\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/users/{user_id}/status","summary":"Статус сотрудника","scope":"user_status:read","plan":null,"auth":true,"paginated":false,"command":"pachca users get-status","docLink":"https://dev.pachca.com/api/users/get-status","describe":"# GET /users/{user_id}/status — Статус сотрудника\n\n> **Скоуп:** `user_status:read`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users get-status 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/get-status\nПолная справка: `pachca api GET /users/{user_id}/status --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/users/{user_id}/status","description":"Статус сотрудника\n\nМетод для получения информации о статусе сотрудника.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_status:read","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Статус сотрудника\n\n**Метод**: `GET`\n\n**Путь**: `/users/{user_id}/status`\n\n> **Скоуп:** `user_status:read`\n\nМетод для получения информации о статусе сотрудника.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/users/12/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Статус пользователя\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/users/{user_id}/status","summary":"Новый статус сотрудника","scope":"user_status:write","plan":null,"auth":true,"paginated":false,"command":"pachca users update-status","docLink":"https://dev.pachca.com/api/users/update-status","describe":"# PUT /users/{user_id}/status — Новый статус сотрудника\n\n> **Скоуп:** `user_status:write`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Тело запроса\n\n- `status: object` (required)\n - `emoji: string` (required) — Emoji символ статуса\n - `title: string` (required) — Текст статуса\n - `expires_at: date-time` — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ\n - `is_away: boolean` — Режим «Нет на месте»\n - `away_message: string` (max length: 1024) — Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.\n\n## Эквивалентная команда\n\n```bash\npachca users update-status 12 \\\n --emoji=🎮 \\\n --title=\"Очень занят\" \\\n --expires-at=2024-04-08T10:00:00.000Z \\\n --is-away \\\n --away-message=\"Вернусь после 15:00\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/update-status\nПолная справка: `pachca api PUT /users/{user_id}/status --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/users/{user_id}/status","description":"Новый статус сотрудника\n\nМетод для установки нового статуса сотруднику.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на установку статуса","required":["status"],"properties":{"status":{"type":"object","required":["emoji","title"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z"},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":true},"away_message":{"type":"string","description":"Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.","example":"Вернусь после 15:00","maxLength":1024}}}},"$ref":"#/components/schemas/StatusUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_status:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Новый статус сотрудника\n\n**Метод**: `PUT`\n\n**Путь**: `/users/{user_id}/status`\n\n> **Скоуп:** `user_status:write`\n\nМетод для установки нового статуса сотруднику.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `status: object` (required)\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` — Режим «Нет на месте». Пример: `true`\n - `away_message: string` (max length: 1024) — Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.. Пример: `\"Вернусь после 15:00\"`\n\n### Пример\n\n```json\n{\n \"status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": true,\n \"away_message\": \"Вернусь после 15:00\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/users/12/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": true,\n \"away_message\": \"Вернусь после 15:00\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Статус пользователя\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/users/{user_id}/status","summary":"Удаление статуса сотрудника","scope":"user_status:write","plan":null,"auth":true,"paginated":false,"command":"pachca users remove-status","docLink":"https://dev.pachca.com/api/users/remove-status","describe":"# DELETE /users/{user_id}/status — Удаление статуса сотрудника\n\n> **Скоуп:** `user_status:write`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users remove-status 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/remove-status\nПолная справка: `pachca api DELETE /users/{user_id}/status --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/users/{user_id}/status","description":"Удаление статуса сотрудника\n\nМетод для удаления статуса сотрудника.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_status:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Удаление статуса сотрудника\n\n**Метод**: `DELETE`\n\n**Путь**: `/users/{user_id}/status`\n\n> **Скоуп:** `user_status:write`\n\nМетод для удаления статуса сотрудника.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/users/12/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/views/open","summary":"Открытие представления","scope":"views:write","plan":null,"auth":true,"paginated":false,"command":"pachca views open","docLink":"https://dev.pachca.com/api/views/open","describe":"# POST /views/open — Открытие представления\n\n> **Скоуп:** `views:write`\n\n## Тело запроса\n\n- `type: string` (required) — Способ открытия представления\n Значения: `modal` — Модальное окно\n- `trigger_id: string` (required) — Уникальный идентификатор события (полученный, например, в исходящем вебхуке о нажатии кнопки)\n- `private_metadata: string` (max length: 3000) — Необязательная строка, которая будет отправлена в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для передачи в формате `JSON` какой то дополнительной информации вместе с заполненной пользователем формой.\n- `callback_id: string` (max length: 255) — Необязательный идентификатор для распознавания этого представления, который будет отправлен в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для понимания, какую форму должен был заполнить пользователь.\n- `view: object` (required) — Собранный объект представления\n - `title: string` (required, max length: 24) — Заголовок представления\n - `close_text: string` (default: Отменить, max length: 24) — Текст кнопки закрытия представления. Отображается только в десктоп-вебе. В мобильных приложениях (iOS/Android) кнопка закрытия — это крестик в шапке, и заданный текст там не показывается.\n - `submit_text: string` (default: Отправить, max length: 24) — Текст кнопки отправки формы\n - `blocks: array (union)` (required, max items: 100) — Массив блоков представления\n **Возможные типы элементов:**\n\n - **ViewBlockHeader**: Блок header — заголовок\n - `type: string` (required) — Тип блока\n Значения: `header` — Для заголовков всегда header\n - `text: string` (required, max length: 150) — Текст заголовка\n - **ViewBlockPlainText**: Блок plain_text — обычный текст\n - `type: string` (required) — Тип блока\n Значения: `plain_text` — Для обычного текста всегда plain_text\n - `text: string` (required, max length: 12000) — Текст\n - **ViewBlockMarkdown**: Блок markdown — форматированный текст\n - `type: string` (required) — Тип блока\n Значения: `markdown` — Для форматированного текста всегда markdown\n - `text: string` (required, max length: 12000) — Текст\n - **ViewBlockDivider**: Блок divider — разделитель\n - `type: string` (required) — Тип блока\n Значения: `divider` — Для разделителя всегда divider\n - **ViewBlockInput**: Блок input — текстовое поле ввода\n - `type: string` (required) — Тип блока\n Значения: `input` — Для текстового поля всегда input\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `placeholder: string` (max length: 150) — Подсказка внутри поля ввода, пока оно пустое\n - `multiline: boolean` (default: false) — Многострочное поле\n - `initial_value: string` (max length: 3000) — Начальное значение в поле\n - `min_length: integer, int32` (min: 0, max: 3000) — Минимальная длина текста, который должен написать пользователь. Если пользователь напишет меньше, он получит ошибку.\n - `max_length: integer, int32` (min: 1, max: 3000) — Максимальная длина текста, который должен написать пользователь. Если пользователь напишет больше, он получит ошибку.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockSelect**: Блок select — выпадающий список\n - `type: string` (required) — Тип блока\n Значения: `select` — Для выпадающего списка всегда select\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к выпадающему списку\n - `options: array of object` (max items: 100) — Массив доступных пунктов в выпадающем списке\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `selected: boolean` — Изначально выбранный пункт. Только один пункт может быть выбран.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под выпадающим списком серым цветом\n - **ViewBlockRadio**: Блок radio — радиокнопки\n - `type: string` (required) — Тип блока\n Значения: `radio` — Для радиокнопок всегда radio\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к группе радиокнопок\n - `options: array of object` (max items: 10) — Массив радиокнопок\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `description: string` (max length: 75) — Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом\n - `selected: boolean` — Изначально выбранный пункт. Только один пункт может быть выбран.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под группой радиокнопок серым цветом\n - **ViewBlockCheckbox**: Блок checkbox — чекбоксы\n - `type: string` (required) — Тип блока\n Значения: `checkbox` — Для чекбоксов всегда checkbox\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к группе чекбоксов\n - `options: array of object` (max items: 10) — Массив чекбоксов\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `description: string` (max length: 75) — Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом\n - `checked: boolean` — Изначально выбранный пункт\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под группой чекбоксов серым цветом\n - **ViewBlockDate**: Блок date — выбор даты\n - `type: string` (required) — Тип блока\n Значения: `date` — Для выбора даты всегда date\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `initial_date: date` — Начальное значение в поле в формате YYYY-MM-DD\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockTime**: Блок time — выбор времени\n - `type: string` (required) — Тип блока\n Значения: `time` — Для выбора времени всегда time\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `initial_time: string, time` — Начальное значение в поле в формате HH:mm\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockFileInput**: Блок file_input — загрузка файлов\n - `type: string` (required) — Тип блока\n Значения: `file_input` — Для загрузки файлов всегда file_input\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `filetypes: array of string` — Массив допустимых расширений файлов, указанные в виде строк (например, [\"png\",\"jpg\",\"gif\"]). Если это поле не указано, все расширения файлов будут приняты.\n - `max_files: integer, int32` (default: 10, min: 1, max: 10) — Максимальное количество файлов, которое может загрузить пользователь в это поле.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n\n## Эквивалентная команда\n\n```bash\npachca views open \\\n --title=\"Уведомление об отпуске\" \\\n --close-text=Закрыть \\\n --submit-text=\"Отправить заявку\" \\\n --blocks='[{\"type\":\"header\",\"text\":\"Основная информация\"},{\"type\":\"plain_text\",\"text\":\"Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.\"},{\"type\":\"markdown\",\"text\":\"Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)\"},{\"type\":\"divider\"},{\"type\":\"input\",\"name\":\"info\",\"label\":\"Описание отпуска\",\"placeholder\":\"Куда собираетесь и что будете делать\",\"multiline\":true,\"initial_value\":\"Начальный текст\",\"min_length\":10,\"max_length\":500,\"required\":true,\"hint\":\"Возможно вам подскаджут, какие места лучше посетить\"},{\"type\":\"select\",\"name\":\"team\",\"label\":\"Выберите команду\",\"options\":[{\"text\":\"Ничего\",\"value\":\"nothing\",\"selected\":true}],\"hint\":\"Выберите одну из команд\"},{\"type\":\"radio\",\"name\":\"accessibility\",\"label\":\"Доступность\",\"options\":[{\"text\":\"Ничего\",\"value\":\"nothing\",\"description\":\"Каждый день бот будет присылать список новых задач в вашей команде\",\"selected\":true}],\"required\":true,\"hint\":\"Если вы не планируете выходить на связь, то выберите вариант Ничего\"},{\"type\":\"checkbox\",\"name\":\"newsletters\",\"label\":\"Рассылки\",\"options\":[{\"text\":\"Ничего\",\"value\":\"nothing\",\"description\":\"Каждый день бот будет присылать список новых задач в вашей команде\",\"checked\":true}],\"hint\":\"Выберите интересующие вас рассылки\"},{\"type\":\"date\",\"name\":\"date_start\",\"label\":\"Дата начала отпуска\",\"initial_date\":\"2025-07-01\",\"required\":true,\"hint\":\"Укажите дату начала отпуска\"},{\"type\":\"time\",\"name\":\"newsletter_time\",\"label\":\"Время рассылки\",\"initial_time\":\"11:00\",\"hint\":\"Укажите, в какое время присылать выбранные рассылки\"},{\"type\":\"file_input\",\"name\":\"request_doc\",\"label\":\"Заявление\",\"filetypes\":[\"pdf\",\"jpg\",\"png\"],\"max_files\":1,\"required\":true,\"hint\":\"Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)\"}]' \\\n --type=modal \\\n --trigger-id=791a056b-006c-49dd-834b-c633fde52fe8 \\\n --private-metadata=\"{\"timeoff_id\":4378}\" \\\n --callback-id=timeoff_reguest_form \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/views/open\nПолная справка: `pachca api POST /views/open --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/views/open","description":"Открытие представления\n\nМетод для открытия модального окна с представлением для пользователя.\n\nЧтобы открыть модальное окно с представлением, ваше приложение должно иметь действительный, неистекший `trigger_id`.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Представление","required":["type","trigger_id","view"],"properties":{"type":{"type":"string","description":"Способ открытия представления","enum":["modal"],"x-enum-descriptions":{"modal":"Модальное окно"},"example":"modal"},"trigger_id":{"type":"string","description":"Уникальный идентификатор события (полученный, например, в исходящем вебхуке о нажатии кнопки)","example":"791a056b-006c-49dd-834b-c633fde52fe8"},"private_metadata":{"type":"string","description":"Необязательная строка, которая будет отправлена в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для передачи в формате `JSON` какой то дополнительной информации вместе с заполненной пользователем формой.","example":"{\"timeoff_id\":4378}","maxLength":3000},"callback_id":{"type":"string","description":"Необязательный идентификатор для распознавания этого представления, который будет отправлен в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для понимания, какую форму должен был заполнить пользователь.","example":"timeoff_reguest_form","maxLength":255},"view":{"type":"object","description":"Собранный объект представления","required":["title","blocks"],"properties":{"title":{"type":"string","description":"Заголовок представления","example":"Уведомление об отпуске","maxLength":24},"close_text":{"type":"string","description":"Текст кнопки закрытия представления. Отображается только в десктоп-вебе. В мобильных приложениях (iOS/Android) кнопка закрытия — это крестик в шапке, и заданный текст там не показывается.","default":"Отменить","example":"Закрыть","maxLength":24},"submit_text":{"type":"string","description":"Текст кнопки отправки формы","default":"Отправить","example":"Отправить заявку","maxLength":24},"blocks":{"type":"array","description":"Массив блоков представления","maxItems":100,"items":{"description":"Union-тип для всех возможных блоков представления","anyOf":[{"type":"object","description":"Блок header — заголовок","required":["type","text"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["header"],"x-enum-descriptions":{"header":"Для заголовков всегда header"},"example":"header"},"text":{"type":"string","description":"Текст заголовка","example":"Основная информация","maxLength":150}},"$ref":"#/components/schemas/ViewBlockHeader"},{"type":"object","description":"Блок plain_text — обычный текст","required":["type","text"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["plain_text"],"x-enum-descriptions":{"plain_text":"Для обычного текста всегда plain_text"},"example":"plain_text"},"text":{"type":"string","description":"Текст","example":"Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.","maxLength":12000}},"$ref":"#/components/schemas/ViewBlockPlainText"},{"type":"object","description":"Блок markdown — форматированный текст","required":["type","text"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["markdown"],"x-enum-descriptions":{"markdown":"Для форматированного текста всегда markdown"},"example":"markdown"},"text":{"type":"string","description":"Текст","example":"Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)","maxLength":12000}},"$ref":"#/components/schemas/ViewBlockMarkdown"},{"type":"object","description":"Блок divider — разделитель","required":["type"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["divider"],"x-enum-descriptions":{"divider":"Для разделителя всегда divider"},"example":"divider"}},"$ref":"#/components/schemas/ViewBlockDivider"},{"type":"object","description":"Блок input — текстовое поле ввода","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["input"],"x-enum-descriptions":{"input":"Для текстового поля всегда input"},"example":"input"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем значения","example":"info","maxLength":255},"label":{"type":"string","description":"Подпись к полю","example":"Описание отпуска","maxLength":150},"placeholder":{"type":"string","description":"Подсказка внутри поля ввода, пока оно пустое","example":"Куда собираетесь и что будете делать","maxLength":150},"multiline":{"type":"boolean","description":"Многострочное поле","default":false,"example":true},"initial_value":{"type":"string","description":"Начальное значение в поле","example":"Начальный текст","maxLength":3000},"min_length":{"type":"integer","format":"int32","description":"Минимальная длина текста, который должен написать пользователь. Если пользователь напишет меньше, он получит ошибку.","example":10,"minimum":0,"maximum":3000},"max_length":{"type":"integer","format":"int32","description":"Максимальная длина текста, который должен написать пользователь. Если пользователь напишет больше, он получит ошибку.","example":500,"minimum":1,"maximum":3000},"required":{"type":"boolean","description":"Обязательность","default":false,"example":true},"hint":{"type":"string","description":"Подсказка, которая отображается под полем серым цветом","example":"Возможно вам подскаджут, какие места лучше посетить","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockInput"},{"type":"object","description":"Блок select — выпадающий список","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["select"],"x-enum-descriptions":{"select":"Для выпадающего списка всегда select"},"example":"select"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора","example":"team","maxLength":255},"label":{"type":"string","description":"Подпись к выпадающему списку","example":"Выберите команду","maxLength":150},"options":{"type":"array","description":"Массив доступных пунктов в выпадающем списке","maxItems":100,"items":{"type":"object","description":"Пункт выпадающего списка (select). В отличие от radio/checkbox, у пункта select нет подзаголовка `description` — веб его не отображает.","required":["text","value"],"properties":{"text":{"type":"string","description":"Отображаемый текст","example":"Ничего","maxLength":75},"value":{"type":"string","description":"Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта","example":"nothing","maxLength":150},"selected":{"type":"boolean","description":"Изначально выбранный пункт. Только один пункт может быть выбран.","example":true}},"$ref":"#/components/schemas/ViewBlockSelectOption"}},"required":{"type":"boolean","description":"Обязательность","default":false,"example":false},"hint":{"type":"string","description":"Подсказка, которая отображается под выпадающим списком серым цветом","example":"Выберите одну из команд","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockSelect"},{"type":"object","description":"Блок radio — радиокнопки","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["radio"],"x-enum-descriptions":{"radio":"Для радиокнопок всегда radio"},"example":"radio"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора","example":"accessibility","maxLength":255},"label":{"type":"string","description":"Подпись к группе радиокнопок","example":"Доступность","maxLength":150},"options":{"type":"array","description":"Массив радиокнопок","maxItems":10,"items":{"type":"object","description":"Опция для блоков select, radio и checkbox","required":["text","value"],"properties":{"text":{"type":"string","description":"Отображаемый текст","example":"Ничего","maxLength":75},"value":{"type":"string","description":"Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта","example":"nothing","maxLength":150},"description":{"type":"string","description":"Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом","example":"Каждый день бот будет присылать список новых задач в вашей команде","maxLength":75},"selected":{"type":"boolean","description":"Изначально выбранный пункт. Только один пункт может быть выбран.","example":true}},"$ref":"#/components/schemas/ViewBlockSelectableOption"}},"required":{"type":"boolean","description":"Обязательность","default":false,"example":true},"hint":{"type":"string","description":"Подсказка, которая отображается под группой радиокнопок серым цветом","example":"Если вы не планируете выходить на связь, то выберите вариант Ничего","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockRadio"},{"type":"object","description":"Блок checkbox — чекбоксы","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["checkbox"],"x-enum-descriptions":{"checkbox":"Для чекбоксов всегда checkbox"},"example":"checkbox"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора","example":"newsletters","maxLength":255},"label":{"type":"string","description":"Подпись к группе чекбоксов","example":"Рассылки","maxLength":150},"options":{"type":"array","description":"Массив чекбоксов","maxItems":10,"items":{"type":"object","required":["text","value"],"properties":{"text":{"type":"string","description":"Отображаемый текст","example":"Ничего","maxLength":75},"value":{"type":"string","description":"Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта","example":"nothing","maxLength":150},"description":{"type":"string","description":"Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом","example":"Каждый день бот будет присылать список новых задач в вашей команде","maxLength":75},"checked":{"type":"boolean","description":"Изначально выбранный пункт","example":true}},"$ref":"#/components/schemas/ViewBlockCheckboxOption"}},"required":{"type":"boolean","description":"Обязательность","default":false,"example":false},"hint":{"type":"string","description":"Подсказка, которая отображается под группой чекбоксов серым цветом","example":"Выберите интересующие вас рассылки","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockCheckbox"},{"type":"object","description":"Блок date — выбор даты","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["date"],"x-enum-descriptions":{"date":"Для выбора даты всегда date"},"example":"date"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем значения","example":"date_start","maxLength":255},"label":{"type":"string","description":"Подпись к полю","example":"Дата начала отпуска","maxLength":150},"initial_date":{"type":"string","format":"date","description":"Начальное значение в поле в формате YYYY-MM-DD","example":"2025-07-01"},"required":{"type":"boolean","description":"Обязательность","default":false,"example":true},"hint":{"type":"string","description":"Подсказка, которая отображается под полем серым цветом","example":"Укажите дату начала отпуска","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockDate"},{"type":"object","description":"Блок time — выбор времени","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["time"],"x-enum-descriptions":{"time":"Для выбора времени всегда time"},"example":"time"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем значения","example":"newsletter_time","maxLength":255},"label":{"type":"string","description":"Подпись к полю","example":"Время рассылки","maxLength":150},"initial_time":{"type":"string","format":"time","description":"Начальное значение в поле в формате HH:mm","example":"11:00"},"required":{"type":"boolean","description":"Обязательность","default":false,"example":false},"hint":{"type":"string","description":"Подсказка, которая отображается под полем серым цветом","example":"Укажите, в какое время присылать выбранные рассылки","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockTime"},{"type":"object","description":"Блок file_input — загрузка файлов","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["file_input"],"x-enum-descriptions":{"file_input":"Для загрузки файлов всегда file_input"},"example":"file_input"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем значения","example":"request_doc","maxLength":255},"label":{"type":"string","description":"Подпись к полю","example":"Заявление","maxLength":150},"filetypes":{"type":"array","description":"Массив допустимых расширений файлов, указанные в виде строк (например, [\"png\",\"jpg\",\"gif\"]). Если это поле не указано, все расширения файлов будут приняты.","example":["pdf","jpg","png"],"items":{"type":"string"}},"max_files":{"type":"integer","format":"int32","description":"Максимальное количество файлов, которое может загрузить пользователь в это поле.","default":10,"example":1,"minimum":1,"maximum":10},"required":{"type":"boolean","description":"Обязательность","default":false,"example":true},"hint":{"type":"string","description":"Подсказка, которая отображается под полем серым цветом","example":"Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockFileInput"}],"$ref":"#/components/schemas/ViewBlockUnion"}}}}},"$ref":"#/components/schemas/OpenViewRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result."},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"410":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"views:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Открытие представления\n\n**Метод**: `POST`\n\n**Путь**: `/views/open`\n\n> **Скоуп:** `views:write`\n\nМетод для открытия модального окна с представлением для пользователя.\n\nЧтобы открыть модальное окно с представлением, ваше приложение должно иметь действительный, неистекший `trigger_id`.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `type: string` (required) — Способ открытия представления. Пример: `\"modal\"`\n Значения: `modal` — Модальное окно\n- `trigger_id: string` (required) — Уникальный идентификатор события (полученный, например, в исходящем вебхуке о нажатии кнопки). Пример: `\"791a056b-006c-49dd-834b-c633fde52fe8\"`\n- `private_metadata: string` (max length: 3000) — Необязательная строка, которая будет отправлена в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для передачи в формате `JSON` какой то дополнительной информации вместе с заполненной пользователем формой.. Пример: `\"{\"timeoff_id\":4378}\"`\n- `callback_id: string` (max length: 255) — Необязательный идентификатор для распознавания этого представления, который будет отправлен в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для понимания, какую форму должен был заполнить пользователь.. Пример: `\"timeoff_reguest_form\"`\n- `view: object` (required) — Собранный объект представления\n - `title: string` (required, max length: 24) — Заголовок представления. Пример: `\"Уведомление об отпуске\"`\n - `close_text: string` (default: Отменить, max length: 24) — Текст кнопки закрытия представления. Отображается только в десктоп-вебе. В мобильных приложениях (iOS/Android) кнопка закрытия — это крестик в шапке, и заданный текст там не показывается.. Пример: `\"Закрыть\"`\n - `submit_text: string` (default: Отправить, max length: 24) — Текст кнопки отправки формы. Пример: `\"Отправить заявку\"`\n - `blocks: array (union)` (required, max items: 100) — Массив блоков представления\n **Возможные типы элементов:**\n\n - **ViewBlockHeader**: Блок header — заголовок\n - `type: string` (required) — Тип блока\n Значения: `header` — Для заголовков всегда header\n - `text: string` (required, max length: 150) — Текст заголовка\n - **ViewBlockPlainText**: Блок plain_text — обычный текст\n - `type: string` (required) — Тип блока\n Значения: `plain_text` — Для обычного текста всегда plain_text\n - `text: string` (required, max length: 12000) — Текст\n - **ViewBlockMarkdown**: Блок markdown — форматированный текст\n - `type: string` (required) — Тип блока\n Значения: `markdown` — Для форматированного текста всегда markdown\n - `text: string` (required, max length: 12000) — Текст\n - **ViewBlockDivider**: Блок divider — разделитель\n - `type: string` (required) — Тип блока\n Значения: `divider` — Для разделителя всегда divider\n - **ViewBlockInput**: Блок input — текстовое поле ввода\n - `type: string` (required) — Тип блока\n Значения: `input` — Для текстового поля всегда input\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `placeholder: string` (max length: 150) — Подсказка внутри поля ввода, пока оно пустое\n - `multiline: boolean` (default: false) — Многострочное поле\n - `initial_value: string` (max length: 3000) — Начальное значение в поле\n - `min_length: integer, int32` (min: 0, max: 3000) — Минимальная длина текста, который должен написать пользователь. Если пользователь напишет меньше, он получит ошибку.\n - `max_length: integer, int32` (min: 1, max: 3000) — Максимальная длина текста, который должен написать пользователь. Если пользователь напишет больше, он получит ошибку.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockSelect**: Блок select — выпадающий список\n - `type: string` (required) — Тип блока\n Значения: `select` — Для выпадающего списка всегда select\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к выпадающему списку\n - `options: array of object` (max items: 100) — Массив доступных пунктов в выпадающем списке\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `selected: boolean` — Изначально выбранный пункт. Только один пункт может быть выбран.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под выпадающим списком серым цветом\n - **ViewBlockRadio**: Блок radio — радиокнопки\n - `type: string` (required) — Тип блока\n Значения: `radio` — Для радиокнопок всегда radio\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к группе радиокнопок\n - `options: array of object` (max items: 10) — Массив радиокнопок\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `description: string` (max length: 75) — Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом\n - `selected: boolean` — Изначально выбранный пункт. Только один пункт может быть выбран.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под группой радиокнопок серым цветом\n - **ViewBlockCheckbox**: Блок checkbox — чекбоксы\n - `type: string` (required) — Тип блока\n Значения: `checkbox` — Для чекбоксов всегда checkbox\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к группе чекбоксов\n - `options: array of object` (max items: 10) — Массив чекбоксов\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `description: string` (max length: 75) — Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом\n - `checked: boolean` — Изначально выбранный пункт\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под группой чекбоксов серым цветом\n - **ViewBlockDate**: Блок date — выбор даты\n - `type: string` (required) — Тип блока\n Значения: `date` — Для выбора даты всегда date\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `initial_date: date` — Начальное значение в поле в формате YYYY-MM-DD\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockTime**: Блок time — выбор времени\n - `type: string` (required) — Тип блока\n Значения: `time` — Для выбора времени всегда time\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `initial_time: string, time` — Начальное значение в поле в формате HH:mm\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockFileInput**: Блок file_input — загрузка файлов\n - `type: string` (required) — Тип блока\n Значения: `file_input` — Для загрузки файлов всегда file_input\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `filetypes: array of string` — Массив допустимых расширений файлов, указанные в виде строк (например, [\"png\",\"jpg\",\"gif\"]). Если это поле не указано, все расширения файлов будут приняты.\n - `max_files: integer, int32` (default: 10, min: 1, max: 10) — Максимальное количество файлов, которое может загрузить пользователь в это поле.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n\n### Пример\n\n```json\n{\n \"type\": \"modal\",\n \"trigger_id\": \"791a056b-006c-49dd-834b-c633fde52fe8\",\n \"private_metadata\": \"{\\\"timeoff_id\\\":4378}\",\n \"callback_id\": \"timeoff_reguest_form\",\n \"view\": {\n \"title\": \"Уведомление об отпуске\",\n \"close_text\": \"Закрыть\",\n \"submit_text\": \"Отправить заявку\",\n \"blocks\": [\n {\n \"type\": \"header\",\n \"text\": \"Основная информация\"\n },\n {\n \"type\": \"plain_text\",\n \"text\": \"Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.\"\n },\n {\n \"type\": \"markdown\",\n \"text\": \"Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)\"\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"input\",\n \"name\": \"info\",\n \"label\": \"Описание отпуска\",\n \"placeholder\": \"Куда собираетесь и что будете делать\",\n \"multiline\": true,\n \"initial_value\": \"Начальный текст\",\n \"min_length\": 10,\n \"max_length\": 500,\n \"required\": true,\n \"hint\": \"Возможно вам подскаджут, какие места лучше посетить\"\n },\n {\n \"type\": \"select\",\n \"name\": \"team\",\n \"label\": \"Выберите команду\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"selected\": true\n }\n ],\n \"hint\": \"Выберите одну из команд\"\n },\n {\n \"type\": \"radio\",\n \"name\": \"accessibility\",\n \"label\": \"Доступность\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"description\": \"Каждый день бот будет присылать список новых задач в вашей команде\",\n \"selected\": true\n }\n ],\n \"required\": true,\n \"hint\": \"Если вы не планируете выходить на связь, то выберите вариант Ничего\"\n },\n {\n \"type\": \"checkbox\",\n \"name\": \"newsletters\",\n \"label\": \"Рассылки\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"description\": \"Каждый день бот будет присылать список новых задач в вашей команде\",\n \"checked\": true\n }\n ],\n \"hint\": \"Выберите интересующие вас рассылки\"\n },\n {\n \"type\": \"date\",\n \"name\": \"date_start\",\n \"label\": \"Дата начала отпуска\",\n \"initial_date\": \"2025-07-01\",\n \"required\": true,\n \"hint\": \"Укажите дату начала отпуска\"\n },\n {\n \"type\": \"time\",\n \"name\": \"newsletter_time\",\n \"label\": \"Время рассылки\",\n \"initial_time\": \"11:00\",\n \"hint\": \"Укажите, в какое время присылать выбранные рассылки\"\n },\n {\n \"type\": \"file_input\",\n \"name\": \"request_doc\",\n \"label\": \"Заявление\",\n \"filetypes\": [\n \"pdf\",\n \"jpg\",\n \"png\"\n ],\n \"max_files\": 1,\n \"required\": true,\n \"hint\": \"Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/views/open\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"type\": \"modal\",\n \"trigger_id\": \"791a056b-006c-49dd-834b-c633fde52fe8\",\n \"private_metadata\": \"{\\\"timeoff_id\\\":4378}\",\n \"callback_id\": \"timeoff_reguest_form\",\n \"view\": {\n \"title\": \"Уведомление об отпуске\",\n \"close_text\": \"Закрыть\",\n \"submit_text\": \"Отправить заявку\",\n \"blocks\": [\n {\n \"type\": \"header\",\n \"text\": \"Основная информация\"\n },\n {\n \"type\": \"plain_text\",\n \"text\": \"Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.\"\n },\n {\n \"type\": \"markdown\",\n \"text\": \"Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)\"\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"input\",\n \"name\": \"info\",\n \"label\": \"Описание отпуска\",\n \"placeholder\": \"Куда собираетесь и что будете делать\",\n \"multiline\": true,\n \"initial_value\": \"Начальный текст\",\n \"min_length\": 10,\n \"max_length\": 500,\n \"required\": true,\n \"hint\": \"Возможно вам подскаджут, какие места лучше посетить\"\n },\n {\n \"type\": \"select\",\n \"name\": \"team\",\n \"label\": \"Выберите команду\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"selected\": true\n }\n ],\n \"hint\": \"Выберите одну из команд\"\n },\n {\n \"type\": \"radio\",\n \"name\": \"accessibility\",\n \"label\": \"Доступность\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"description\": \"Каждый день бот будет присылать список новых задач в вашей команде\",\n \"selected\": true\n }\n ],\n \"required\": true,\n \"hint\": \"Если вы не планируете выходить на связь, то выберите вариант Ничего\"\n },\n {\n \"type\": \"checkbox\",\n \"name\": \"newsletters\",\n \"label\": \"Рассылки\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"description\": \"Каждый день бот будет присылать список новых задач в вашей команде\",\n \"checked\": true\n }\n ],\n \"hint\": \"Выберите интересующие вас рассылки\"\n },\n {\n \"type\": \"date\",\n \"name\": \"date_start\",\n \"label\": \"Дата начала отпуска\",\n \"initial_date\": \"2025-07-01\",\n \"required\": true,\n \"hint\": \"Укажите дату начала отпуска\"\n },\n {\n \"type\": \"time\",\n \"name\": \"newsletter_time\",\n \"label\": \"Время рассылки\",\n \"initial_time\": \"11:00\",\n \"hint\": \"Укажите, в какое время присылать выбранные рассылки\"\n },\n {\n \"type\": \"file_input\",\n \"name\": \"request_doc\",\n \"label\": \"Заявление\",\n \"filetypes\": [\n \"pdf\",\n \"jpg\",\n \"png\"\n ],\n \"max_files\": 1,\n \"required\": true,\n \"hint\": \"Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 410: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/webhooks/events","summary":"История событий","scope":"webhooks:events:read","plan":null,"auth":true,"paginated":true,"command":"pachca bots list-events","docLink":"https://dev.pachca.com/api/bots/list-events","describe":"# GET /webhooks/events — История событий\n\n> **Скоуп:** `webhooks:events:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca bots list-events \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/list-events\nПолная справка: `pachca api GET /webhooks/events --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/webhooks/events","description":"История событий\n\nМетод для получения истории последних событий бота. Данный метод будет полезен, если вы не можете получать события в реальном времени на ваш `URL`, но вам требуется обрабатывать все события, на которые вы подписались.\n\nИстория событий сохраняется только при активном пункте «Сохранять историю событий» во вкладке «Исходящий webhook» настроек бота. При этом указывать «Webhook `URL`» не требуется.\n\nДля получения истории событий конкретного бота вам необходимо знать его `access_token` и использовать его при запросе. Каждое событие представляет `JSON` объект вебхука.","parameters":[{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Событие исходящего вебхука","required":["id","event_type","payload","created_at"],"properties":{"id":{"type":"string","description":"Идентификатор события","example":"01KAJZ2XDSS2S3DSW9EXJZ0TBV"},"event_type":{"type":"string","description":"Тип события","example":"message_new"},"payload":{"description":"Объект вебхука","allOf":[{"description":"Объединение всех типов payload вебхуков","anyOf":[{"type":"object","description":"Структура исходящего вебхука о сообщении","required":["type","id","event","entity_type","entity_id","content","user_id","created_at","url","chat_id","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["message"],"x-enum-descriptions":{"message":"Для сообщений всегда message"},"example":"message"},"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":1245817},"event":{"description":"Тип события","example":"new","allOf":[{"type":"string","description":"Тип события webhook","enum":["new","update","delete"],"x-enum-descriptions":{"new":"Создание","update":"Обновление","delete":"Удаление"},"$ref":"#/components/schemas/WebhookEventType"}]},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение","example":5678},"content":{"type":"string","description":"Текст сообщения","example":"Текст сообщения"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор отправителя сообщения","example":2345},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://pachca.com/chats/1245817/messages/5678"},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":9012},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":3456,"nullable":true},"thread":{"type":"object","description":"Объект с параметрами треда","nullable":true,"allOf":[{"type":"object","description":"Объект треда в вебхуке сообщения","required":["message_id","message_chat_id"],"properties":{"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред","example":12345},"message_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред","example":67890}},"$ref":"#/components/schemas/WebhookMessageThread"}]},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/MessageWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука о реакции","required":["type","event","chat_id","message_id","code","name","user_id","created_at","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["reaction"],"x-enum-descriptions":{"reaction":"Для реакций всегда reaction"},"example":"reaction"},"event":{"description":"Тип события","example":"new","allOf":[{"type":"string","description":"Тип события webhook для реакций","enum":["new","delete"],"x-enum-descriptions":{"new":"Создание","delete":"Удаление"},"$ref":"#/components/schemas/ReactionEventType"}]},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение. Поле всегда присутствует в payload. В редких случаях (например, если сообщение было удалено к моменту отправки вебхука) может быть `null`.","example":9012,"nullable":true},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому относится реакция","example":1245817},"code":{"type":"string","description":"Emoji символ реакции","example":"👍"},"name":{"type":"string","description":"Название реакции","example":"thumbsup"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который добавил или удалил реакцию","example":2345},"created_at":{"type":"string","format":"date-time","description":"Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Поле присутствует и для события удаления реакции.","example":"2025-05-15T14:30:00.000Z"},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/ReactionWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука о нажатии кнопки","required":["type","event","message_id","trigger_id","data","user_id","chat_id","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["button"],"x-enum-descriptions":{"button":"Для кнопки всегда button"},"example":"button"},"event":{"type":"string","description":"Тип события","enum":["click"],"x-enum-descriptions":{"click":"Нажатие кнопки"},"example":"click"},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому относится кнопка","example":1245817},"trigger_id":{"type":"string","description":"Уникальный идентификатор события. Время жизни — 3 секунды. Может быть использован, например, для открытия представления пользователю","example":"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14"},"data":{"type":"string","description":"Данные нажатой кнопки","example":"button_data"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который нажал кнопку","example":2345},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором была нажата кнопка","example":9012},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/ButtonWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука о заполнении формы","required":["type","event","callback_id","private_metadata","chat_id","user_id","data","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["view"],"x-enum-descriptions":{"view":"Для формы всегда view"},"example":"view"},"event":{"type":"string","description":"Тип события","enum":["submit"],"x-enum-descriptions":{"submit":"Отправка формы"},"example":"submit"},"callback_id":{"type":"string","description":"Идентификатор обратного вызова, указанный при открытии представления","example":"timeoff_request_form","nullable":true},"private_metadata":{"type":"string","description":"Приватные метаданные, указанные при открытии представления","example":"{'timeoff_id':4378}","nullable":true},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором была нажата кнопка, открывшая форму. Поле может быть `null` для форм, открытых до выкатки этого поля.","example":9012,"nullable":true},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который отправил форму","example":1235523},"data":{"type":"object","description":"Данные заполненных полей представления. Ключ — `name` блока, значение — введённые данные","additionalProperties":{}},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1755075544}},"$ref":"#/components/schemas/ViewSubmitWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука об участниках чата","required":["type","event","chat_id","user_ids","created_at","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["chat_member"],"x-enum-descriptions":{"chat_member":"Для участника чата всегда chat_member"},"example":"chat_member"},"event":{"description":"Тип события","example":"add","allOf":[{"type":"string","description":"Тип события webhook для участников","enum":["add","remove"],"x-enum-descriptions":{"add":"Добавление","remove":"Удаление"},"$ref":"#/components/schemas/MemberEventType"}]},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором изменился состав участников","example":9012},"thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда","example":5678,"nullable":true},"user_ids":{"type":"array","description":"Массив идентификаторов пользователей, с которыми произошло событие","example":[2345,6789],"items":{"type":"integer","format":"int32"}},"created_at":{"type":"string","format":"date-time","description":"Дата и время события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/ChatMemberWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука об участниках пространства","required":["type","event","user_ids","created_at","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["company_member"],"x-enum-descriptions":{"company_member":"Для участника пространства всегда company_member"},"example":"company_member"},"event":{"description":"Тип события","example":"invite","allOf":[{"type":"string","description":"Тип события webhook для пользователей","enum":["invite","confirm","update","suspend","activate","delete"],"x-enum-descriptions":{"invite":"Приглашение","confirm":"Подтверждение","update":"Обновление","suspend":"Приостановка","activate":"Активация","delete":"Удаление"},"$ref":"#/components/schemas/UserEventType"}]},"user_ids":{"type":"array","description":"Массив идентификаторов пользователей, с которыми произошло событие","example":[2345,6789],"items":{"type":"integer","format":"int32"}},"created_at":{"type":"string","format":"date-time","description":"Дата и время события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/CompanyMemberWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука о разворачивании ссылок","required":["type","event","chat_id","message_id","links","user_id","created_at","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["message"],"x-enum-descriptions":{"message":"Для разворачивания ссылок всегда message"},"example":"message"},"event":{"type":"string","description":"Тип события","enum":["link_shared"],"x-enum-descriptions":{"link_shared":"Обнаружена ссылка на отслеживаемый домен"},"example":"link_shared"},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором обнаружена ссылка","example":23438},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, содержащего ссылку","example":268092},"links":{"type":"array","description":"Массив обнаруженных ссылок на отслеживаемые домены","items":{"type":"object","description":"Объект ссылки в вебхуке разворачивания ссылок","required":["url","domain","skip"],"properties":{"url":{"type":"string","description":"URL ссылки","example":"https://example.com/page1"},"domain":{"type":"string","description":"Домен ссылки","example":"example.com"},"skip":{"type":"boolean","description":"Признак того, что автор сообщения скрыл превью для этой ссылки. Если `true` — бот не должен создавать превью","example":false}},"$ref":"#/components/schemas/WebhookLink"}},"user_id":{"type":"integer","format":"int32","description":"Идентификатор отправителя сообщения","example":2345},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-09-18T19:53:14.000Z"},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1726685594}},"$ref":"#/components/schemas/LinkSharedWebhookPayload"}],"$ref":"#/components/schemas/WebhookPayloadUnion"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"}},"$ref":"#/components/schemas/WebhookEvent"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"webhooks:events:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# История событий\n\n**Метод**: `GET`\n\n**Путь**: `/webhooks/events`\n\n> **Скоуп:** `webhooks:events:read`\n\nМетод для получения истории последних событий бота. Данный метод будет полезен, если вы не можете получать события в реальном времени на ваш `URL`, но вам требуется обрабатывать все события, на которые вы подписались.\n\nИстория событий сохраняется только при активном пункте «Сохранять историю событий» во вкладке «Исходящий webhook» настроек бота. При этом указывать «Webhook `URL`» не требуется.\n\nДля получения истории событий конкретного бота вам необходимо знать его `access_token` и использовать его при запросе. Каждое событие представляет `JSON` объект вебхука.\n\n## Параметры\n\n### Query параметры\n\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/webhooks/events?limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: string` (required) — Идентификатор события. Пример: `\"01KAJZ2XDSS2S3DSW9EXJZ0TBV\"`\n - `event_type: string` (required) — Тип события. Пример: `\"message_new\"`\n - `payload: anyOf` (required) — Объект вебхука\n **Возможные варианты:**\n\n - **MessageWebhookPayload**: Структура исходящего вебхука о сообщении\n - `type: string` (required) — Тип объекта. Пример: `\"message\"`\n Значения: `message` — Для сообщений всегда message\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `1245817`\n - `event: string` (required) — Тип события\n Значения: `new` — Создание, `update` — Обновление, `delete` — Удаление\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение. Пример: `5678`\n - `content: string` (required) — Текст сообщения. Пример: `\"Текст сообщения\"`\n - `user_id: integer, int32` (required) — Идентификатор отправителя сообщения. Пример: `2345`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://pachca.com/chats/1245817/messages/5678\"`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `9012`\n - `parent_message_id: integer, int32` — Идентификатор сообщения, к которому написан ответ. Пример: `3456`\n - `thread: object` — Объект с параметрами треда\n - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред. Пример: `12345`\n - `message_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред. Пример: `67890`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **ReactionWebhookPayload**: Структура исходящего вебхука о реакции\n - `type: string` (required) — Тип объекта. Пример: `\"reaction\"`\n Значения: `reaction` — Для реакций всегда reaction\n - `event: string` (required) — Тип события\n Значения: `new` — Создание, `delete` — Удаление\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Поле всегда присутствует в payload. В редких случаях (например, если сообщение было удалено к моменту отправки вебхука) может быть `null`.. Пример: `9012`\n - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому относится реакция. Пример: `1245817`\n - `code: string` (required) — Emoji символ реакции. Пример: `\"👍\"`\n - `name: string` (required) — Название реакции. Пример: `\"thumbsup\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, который добавил или удалил реакцию. Пример: `2345`\n - `created_at: date-time` (required) — Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Поле присутствует и для события удаления реакции.. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **ButtonWebhookPayload**: Структура исходящего вебхука о нажатии кнопки\n - `type: string` (required) — Тип объекта. Пример: `\"button\"`\n Значения: `button` — Для кнопки всегда button\n - `event: string` (required) — Тип события. Пример: `\"click\"`\n Значения: `click` — Нажатие кнопки\n - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому относится кнопка. Пример: `1245817`\n - `trigger_id: string` (required) — Уникальный идентификатор события. Время жизни — 3 секунды. Может быть использован, например, для открытия представления пользователю. Пример: `\"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14\"`\n - `data: string` (required) — Данные нажатой кнопки. Пример: `\"button_data\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, который нажал кнопку. Пример: `2345`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором была нажата кнопка. Пример: `9012`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **ViewSubmitWebhookPayload**: Структура исходящего вебхука о заполнении формы\n - `type: string` (required) — Тип объекта. Пример: `\"view\"`\n Значения: `view` — Для формы всегда view\n - `event: string` (required) — Тип события. Пример: `\"submit\"`\n Значения: `submit` — Отправка формы\n - `callback_id: string` (required) — Идентификатор обратного вызова, указанный при открытии представления. Пример: `\"timeoff_request_form\"`\n - `private_metadata: string` (required) — Приватные метаданные, указанные при открытии представления. Пример: `\"{'timeoff_id':4378}\"`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором была нажата кнопка, открывшая форму. Поле может быть `null` для форм, открытых до выкатки этого поля.. Пример: `9012`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, который отправил форму. Пример: `1235523`\n - `data: Record` (required) — Данные заполненных полей представления. Ключ — `name` блока, значение — введённые данные\n **Структура значений Record:**\n - Тип значения: `any`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1755075544`\n - **ChatMemberWebhookPayload**: Структура исходящего вебхука об участниках чата\n - `type: string` (required) — Тип объекта. Пример: `\"chat_member\"`\n Значения: `chat_member` — Для участника чата всегда chat_member\n - `event: string` (required) — Тип события\n Значения: `add` — Добавление, `remove` — Удаление\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором изменился состав участников. Пример: `9012`\n - `thread_id: integer, int32` — Идентификатор треда. Пример: `5678`\n - `user_ids: array of integer` (required) — Массив идентификаторов пользователей, с которыми произошло событие. Пример: `[2345,6789]`\n - `created_at: date-time` (required) — Дата и время события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **CompanyMemberWebhookPayload**: Структура исходящего вебхука об участниках пространства\n - `type: string` (required) — Тип объекта. Пример: `\"company_member\"`\n Значения: `company_member` — Для участника пространства всегда company_member\n - `event: string` (required) — Тип события\n Значения: `invite` — Приглашение, `confirm` — Подтверждение, `update` — Обновление, `suspend` — Приостановка, `activate` — Активация, `delete` — Удаление\n - `user_ids: array of integer` (required) — Массив идентификаторов пользователей, с которыми произошло событие. Пример: `[2345,6789]`\n - `created_at: date-time` (required) — Дата и время события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **LinkSharedWebhookPayload**: Структура исходящего вебхука о разворачивании ссылок\n - `type: string` (required) — Тип объекта. Пример: `\"message\"`\n Значения: `message` — Для разворачивания ссылок всегда message\n - `event: string` (required) — Тип события. Пример: `\"link_shared\"`\n Значения: `link_shared` — Обнаружена ссылка на отслеживаемый домен\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором обнаружена ссылка. Пример: `23438`\n - `message_id: integer, int32` (required) — Идентификатор сообщения, содержащего ссылку. Пример: `268092`\n - `links: array of object` (required) — Массив обнаруженных ссылок на отслеживаемые домены\n - `url: string` (required) — URL ссылки. Пример: `\"https://example.com/page1\"`\n - `domain: string` (required) — Домен ссылки. Пример: `\"example.com\"`\n - `skip: boolean` (required) — Признак того, что автор сообщения скрыл превью для этой ссылки. Если `true` — бот не должен создавать превью. Пример: `false`\n - `user_id: integer, int32` (required) — Идентификатор отправителя сообщения. Пример: `2345`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-09-18T19:53:14.000Z\"`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1726685594`\n - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": \"01KAJZ2XDSS2S3DSW9EXJZ0TBV\",\n \"event_type\": \"message_new\",\n \"payload\": {\n \"type\": \"message\",\n \"id\": 1245817,\n \"event\": \"new\",\n \"entity_type\": \"discussion\",\n \"entity_id\": 5678,\n \"content\": \"Текст сообщения\",\n \"user_id\": 2345,\n \"created_at\": \"2025-05-15T14:30:00.000Z\",\n \"url\": \"https://pachca.com/chats/1245817/messages/5678\",\n \"chat_id\": 9012,\n \"parent_message_id\": 3456,\n \"thread\": {\n \"message_id\": 12345,\n \"message_chat_id\": 67890\n },\n \"webhook_timestamp\": 1747574400\n },\n \"created_at\": \"2025-05-15T14:30:00.000Z\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/webhooks/events/{id}","summary":"Удаление события","scope":"webhooks:events:delete","plan":null,"auth":true,"paginated":false,"command":"pachca bots remove-event","docLink":"https://dev.pachca.com/api/bots/remove-event","describe":"# DELETE /webhooks/events/{id} — Удаление события\n\n> **Скоуп:** `webhooks:events:delete`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор события\n\n## Эквивалентная команда\n\n```bash\npachca bots remove-event 01KAJZ2XDSS2S3DSW9EXJZ0TBV \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/remove-event\nПолная справка: `pachca api DELETE /webhooks/events/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/webhooks/events/{id}","description":"Удаление события\n\nДанный метод доступен для работы только с `access_token` бота\n\nМетод для удаления события из истории событий бота.\n\nДля удаления события вам необходимо знать `access_token` бота, которому принадлежит событие, и `id` события.","parameters":[{"name":"id","in":"path","description":"Идентификатор события","required":true,"schema":{"type":"string","example":"01KAJZ2XDSS2S3DSW9EXJZ0TBV"},"example":"01KAJZ2XDSS2S3DSW9EXJZ0TBV"}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"webhooks:events:delete","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление события\n\n**Метод**: `DELETE`\n\n**Путь**: `/webhooks/events/{id}`\n\n> **Скоуп:** `webhooks:events:delete`\n\nДанный метод доступен для работы только с `access_token` бота\n\nМетод для удаления события из истории событий бота.\n\nДля удаления события вам необходимо знать `access_token` бота, которому принадлежит событие, и `id` события.\n\n## Параметры\n\n### Path параметры\n\n- `id: string` (required) — Идентификатор события\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/webhooks/events/01KAJZ2XDSS2S3DSW9EXJZ0TBV\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"}] \ No newline at end of file +[{"method":"GET","path":"/audit_events","summary":"Журнал аудита событий","scope":"audit_events:read","plan":"corporation","auth":true,"paginated":true,"command":"pachca security list","docLink":"https://dev.pachca.com/api/security/list","describe":"# GET /audit_events — Журнал аудита событий\n\n> **Скоуп:** `audit_events:read`\n\n> **Тариф:** Корпорация\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `start_time` — query: Начальная метка времени (включительно)\n- `end_time` — query: Конечная метка времени (исключительно)\n- `event_key` — query: Фильтр по конкретному типу события\n- `actor_id` — query: Идентификатор пользователя, выполнившего действие\n- `actor_type` — query: Тип актора\n- `entity_id` — query: Идентификатор затронутой сущности\n- `entity_type` — query: Тип сущности\n- `limit` — query: Количество записей для возврата\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca security list \\\n --start-time=2025-05-01T09:11:00Z \\\n --end-time=2025-05-02T09:11:00Z \\\n --event-key=user_login \\\n --actor-id=98765 \\\n --actor-type=User \\\n --entity-id=98765 \\\n --entity-type=User \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/security/list\nПолная справка: `pachca api GET /audit_events --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/audit_events","description":"Журнал аудита событий\n\nМетод для получения логов событий на основе указанных фильтров.","parameters":[{"name":"start_time","in":"query","description":"Начальная метка времени (включительно)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-01T09:11:00Z"},"example":"2025-05-01T09:11:00Z","explode":false},{"name":"end_time","in":"query","description":"Конечная метка времени (исключительно)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-05-02T09:11:00Z"},"example":"2025-05-02T09:11:00Z","explode":false},{"name":"event_key","in":"query","description":"Фильтр по конкретному типу события","required":false,"schema":{"type":"string","description":"Тип аудит-события","enum":["user_login","user_logout","user_2fa_fail","user_2fa_success","user_created","user_deleted","user_role_changed","user_updated","tag_created","tag_deleted","user_added_to_tag","user_removed_from_tag","chat_created","chat_renamed","chat_permission_changed","user_chat_join","user_chat_leave","tag_added_to_chat","tag_removed_from_chat","message_updated","message_deleted","message_created","reaction_created","reaction_deleted","thread_created","access_token_created","access_token_updated","access_token_destroy","kms_encrypt","kms_decrypt","audit_events_accessed","dlp_violation_detected","search_users_api","search_chats_api","search_messages_api","bot_scopes_updated","bot_webhook_settings_updated","bot_token_recreated","bot_deleted"],"x-enum-descriptions":{"user_login":"Пользователь успешно вошел в систему","user_logout":"Пользователь вышел из системы","user_2fa_fail":"Неудачная попытка двухфакторной аутентификации","user_2fa_success":"Успешная двухфакторная аутентификация","user_created":"Создана новая учетная запись пользователя","user_deleted":"Учетная запись пользователя удалена","user_role_changed":"Роль пользователя была изменена","user_updated":"Данные пользователя обновлены","tag_created":"Создан новый тег","tag_deleted":"Тег удален","user_added_to_tag":"Пользователь добавлен в тег","user_removed_from_tag":"Пользователь удален из тега","chat_created":"Создан новый чат","chat_renamed":"Чат переименован","chat_permission_changed":"Изменены права доступа к чату","user_chat_join":"Пользователь присоединился к чату","user_chat_leave":"Пользователь покинул чат","tag_added_to_chat":"Тег добавлен в чат","tag_removed_from_chat":"Тег удален из чата","message_updated":"Сообщение отредактировано","message_deleted":"Сообщение удалено","message_created":"Сообщение создано","reaction_created":"Реакция добавлена","reaction_deleted":"Реакция удалена","thread_created":"Тред создан","access_token_created":"Создан новый токен доступа","access_token_updated":"Токен доступа обновлен","access_token_destroy":"Токен доступа удален","kms_encrypt":"Данные зашифрованы","kms_decrypt":"Данные расшифрованы","audit_events_accessed":"Доступ к журналам аудита получен","dlp_violation_detected":"Срабатывание правила DLP-системы","search_users_api":"Поиск сотрудников через API","search_chats_api":"Поиск чатов через API","search_messages_api":"Поиск сообщений через API","bot_scopes_updated":"Изменены скоупы токена бота","bot_webhook_settings_updated":"Изменены настройки исходящего вебхука бота","bot_token_recreated":"Токен бота перевыпущен (ротация)","bot_deleted":"Бот удалён"},"example":"user_login","$ref":"#/components/schemas/AuditEventKey"},"example":"user_login","explode":false},{"name":"actor_id","in":"query","description":"Идентификатор пользователя, выполнившего действие","required":false,"schema":{"type":"string","example":"98765"},"example":"98765","explode":false},{"name":"actor_type","in":"query","description":"Тип актора","required":false,"schema":{"type":"string","example":"User"},"example":"User","explode":false},{"name":"entity_id","in":"query","description":"Идентификатор затронутой сущности","required":false,"schema":{"type":"string","example":"98765"},"example":"98765","explode":false},{"name":"entity_type","in":"query","description":"Тип сущности","required":false,"schema":{"type":"string","example":"User"},"example":"User","explode":false},{"name":"limit","in":"query","description":"Количество записей для возврата","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Событие аудита","required":["id","created_at","event_key","entity_id","entity_type","actor_id","actor_type","details","ip_address","user_agent"],"properties":{"id":{"type":"string","description":"Уникальный идентификатор события","example":"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"},"event_key":{"description":"Ключ типа события","example":"user_login","allOf":[{"type":"string","description":"Тип аудит-события","enum":["user_login","user_logout","user_2fa_fail","user_2fa_success","user_created","user_deleted","user_role_changed","user_updated","tag_created","tag_deleted","user_added_to_tag","user_removed_from_tag","chat_created","chat_renamed","chat_permission_changed","user_chat_join","user_chat_leave","tag_added_to_chat","tag_removed_from_chat","message_updated","message_deleted","message_created","reaction_created","reaction_deleted","thread_created","access_token_created","access_token_updated","access_token_destroy","kms_encrypt","kms_decrypt","audit_events_accessed","dlp_violation_detected","search_users_api","search_chats_api","search_messages_api","bot_scopes_updated","bot_webhook_settings_updated","bot_token_recreated","bot_deleted"],"x-enum-descriptions":{"user_login":"Пользователь успешно вошел в систему","user_logout":"Пользователь вышел из системы","user_2fa_fail":"Неудачная попытка двухфакторной аутентификации","user_2fa_success":"Успешная двухфакторная аутентификация","user_created":"Создана новая учетная запись пользователя","user_deleted":"Учетная запись пользователя удалена","user_role_changed":"Роль пользователя была изменена","user_updated":"Данные пользователя обновлены","tag_created":"Создан новый тег","tag_deleted":"Тег удален","user_added_to_tag":"Пользователь добавлен в тег","user_removed_from_tag":"Пользователь удален из тега","chat_created":"Создан новый чат","chat_renamed":"Чат переименован","chat_permission_changed":"Изменены права доступа к чату","user_chat_join":"Пользователь присоединился к чату","user_chat_leave":"Пользователь покинул чат","tag_added_to_chat":"Тег добавлен в чат","tag_removed_from_chat":"Тег удален из чата","message_updated":"Сообщение отредактировано","message_deleted":"Сообщение удалено","message_created":"Сообщение создано","reaction_created":"Реакция добавлена","reaction_deleted":"Реакция удалена","thread_created":"Тред создан","access_token_created":"Создан новый токен доступа","access_token_updated":"Токен доступа обновлен","access_token_destroy":"Токен доступа удален","kms_encrypt":"Данные зашифрованы","kms_decrypt":"Данные расшифрованы","audit_events_accessed":"Доступ к журналам аудита получен","dlp_violation_detected":"Срабатывание правила DLP-системы","search_users_api":"Поиск сотрудников через API","search_chats_api":"Поиск чатов через API","search_messages_api":"Поиск сообщений через API","bot_scopes_updated":"Изменены скоупы токена бота","bot_webhook_settings_updated":"Изменены настройки исходящего вебхука бота","bot_token_recreated":"Токен бота перевыпущен (ротация)","bot_deleted":"Бот удалён"},"$ref":"#/components/schemas/AuditEventKey"}]},"entity_id":{"type":"string","description":"Идентификатор затронутой сущности","example":"98765"},"entity_type":{"type":"string","description":"Тип затронутой сущности","example":"User"},"actor_id":{"type":"string","description":"Идентификатор пользователя, выполнившего действие","example":"98765"},"actor_type":{"type":"string","description":"Тип актора","example":"User"},"details":{"description":"Дополнительные детали события. Структура зависит от значения event_key — см. описания значений поля event_key. Для событий без деталей возвращается пустой объект","allOf":[{"description":"Дополнительные детали события аудита. Структура зависит от значения event_key","anyOf":[{"type":"object","description":"Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated, bot_deleted","$ref":"#/components/schemas/AuditDetailsEmpty"},{"type":"object","description":"При: user_updated","required":["changed_attrs"],"properties":{"changed_attrs":{"type":"array","description":"Список изменённых полей","items":{"type":"string"}}},"$ref":"#/components/schemas/AuditDetailsUserUpdated"},{"type":"object","description":"При: user_role_changed","required":["new_company_role","previous_company_role","initiator_id"],"properties":{"new_company_role":{"type":"string","description":"Новая роль"},"previous_company_role":{"type":"string","description":"Предыдущая роль"},"initiator_id":{"type":"integer","format":"int32","description":"Идентификатор инициатора"}},"$ref":"#/components/schemas/AuditDetailsRoleChanged"},{"type":"object","description":"При: tag_created, tag_deleted","required":["name"],"properties":{"name":{"type":"string","description":"Название тега"}},"$ref":"#/components/schemas/AuditDetailsTagName"},{"type":"object","description":"При: user_added_to_tag, user_removed_from_tag, user_chat_leave","required":["initiator_id"],"properties":{"initiator_id":{"type":"integer","format":"int32","description":"Идентификатор инициатора действия"}},"$ref":"#/components/schemas/AuditDetailsInitiator"},{"type":"object","description":"При: user_chat_join","required":["inviter_id"],"properties":{"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор пригласившего"}},"$ref":"#/components/schemas/AuditDetailsInviter"},{"type":"object","description":"При: chat_renamed","required":["old_name","new_name"],"properties":{"old_name":{"type":"string","description":"Прежнее название чата"},"new_name":{"type":"string","description":"Новое название чата"}},"$ref":"#/components/schemas/AuditDetailsChatRenamed"},{"type":"object","description":"При: chat_permission_changed","required":["public_access"],"properties":{"public_access":{"type":"boolean","description":"Публичный доступ"}},"$ref":"#/components/schemas/AuditDetailsChatPermission"},{"type":"object","description":"При: tag_added_to_chat","required":["chat_id","tag_name"],"properties":{"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата"},"tag_name":{"type":"string","description":"Название тега"}},"$ref":"#/components/schemas/AuditDetailsTagChat"},{"type":"object","description":"При: tag_removed_from_chat","required":["chat_id"],"properties":{"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата"}},"$ref":"#/components/schemas/AuditDetailsChatId"},{"type":"object","description":"При: access_token_created, access_token_updated, access_token_destroy","required":["scopes"],"properties":{"scopes":{"type":"array","description":"Скоупы токена","items":{"type":"string"}}},"$ref":"#/components/schemas/AuditDetailsTokenScopes"},{"type":"object","description":"При: kms_encrypt, kms_decrypt","required":["chat_id","message_id","reason"],"properties":{"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата"},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения"},"reason":{"type":"string","description":"Причина операции"}},"$ref":"#/components/schemas/AuditDetailsKms"},{"type":"object","description":"При: dlp_violation_detected","required":["dlp_rule_id","dlp_rule_name","message_id","chat_id","user_id","action_message","conditions_matched"],"properties":{"dlp_rule_id":{"type":"integer","format":"int32","description":"Идентификатор правила DLP"},"dlp_rule_name":{"type":"string","description":"Название правила DLP"},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения"},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя"},"action_message":{"type":"string","description":"Описание действия. `null`, если у действия правила текст не задан.","nullable":true},"conditions_matched":{"type":"boolean","description":"Результат проверки условий правила (true — условия сработали)"}},"$ref":"#/components/schemas/AuditDetailsDlp"},{"type":"object","description":"При: search_users_api, search_chats_api, search_messages_api","required":["search_type","query_present","cursor_present","limit","filters"],"properties":{"search_type":{"type":"string","description":"Тип поиска"},"query_present":{"type":"boolean","description":"Указан ли поисковый запрос"},"cursor_present":{"type":"boolean","description":"Использован ли курсор"},"limit":{"type":"integer","format":"int32","description":"Количество возвращённых результатов"},"filters":{"type":"object","description":"Применённые фильтры. Возможные ключи зависят от типа поиска: order, sort, created_from, created_to, company_roles (users), active, chat_subtype, personal (chats), chat_ids, user_ids (messages)","additionalProperties":{}}},"$ref":"#/components/schemas/AuditDetailsSearch"},{"type":"object","description":"При: bot_scopes_updated","required":["added_scopes","removed_scopes"],"properties":{"added_scopes":{"type":"array","description":"Скоупы, добавленные токену бота","items":{"type":"string"}},"removed_scopes":{"type":"array","description":"Скоупы, отозванные у токена бота","items":{"type":"string"}}},"$ref":"#/components/schemas/AuditDetailsBotScopes"},{"type":"object","description":"При: bot_webhook_settings_updated","required":["changes"],"properties":{"changes":{"type":"object","description":"Изменённые настройки вебхука. Ключ — имя настройки (outgoing_url, ignore_self_messages, events_history_enabled), значение — объект с полями previous (прежнее значение) и new (новое значение)","additionalProperties":{}}},"$ref":"#/components/schemas/AuditDetailsBotWebhookSettings"}],"$ref":"#/components/schemas/AuditEventDetailsUnion"}]},"ip_address":{"type":"string","description":"IP-адрес, с которого было выполнено действие","example":"192.168.1.100"},"user_agent":{"type":"string","description":"User agent клиента","example":"Pachca/3.60.0 (co.staply.pachca; build:15; iOS 18.5.0) Alamofire/5.0.0"}},"$ref":"#/components/schemas/AuditEvent"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"audit_events:read","plan":"corporation","scopeRoles":["owner"]},"paginated":true},"docs":"# Журнал аудита событий\n\n**Метод**: `GET`\n\n**Путь**: `/audit_events`\n\n> **Скоуп:** `audit_events:read`\n\n> **Внимание:** Доступно только на тарифе **Корпорация**\n\nМетод для получения логов событий на основе указанных фильтров.\n\n## Параметры\n\n### Query параметры\n\n- `start_time: date-time` — Начальная метка времени (включительно)\n- `end_time: date-time` — Конечная метка времени (исключительно)\n- `event_key: string` — Фильтр по конкретному типу события\n Значения: `user_login`, `user_logout`, `user_2fa_fail`, `user_2fa_success`, `user_created`, `user_deleted`, `user_role_changed`, `user_updated`, `tag_created`, `tag_deleted`, `user_added_to_tag`, `user_removed_from_tag`, `chat_created`, `chat_renamed`, `chat_permission_changed`, `user_chat_join`, `user_chat_leave`, `tag_added_to_chat`, `tag_removed_from_chat`, `message_updated`, `message_deleted`, `message_created`, `reaction_created`, `reaction_deleted`, `thread_created`, `access_token_created`, `access_token_updated`, `access_token_destroy`, `kms_encrypt`, `kms_decrypt`, `audit_events_accessed`, `dlp_violation_detected`, `search_users_api`, `search_chats_api`, `search_messages_api`, `bot_scopes_updated`, `bot_webhook_settings_updated`, `bot_token_recreated`, `bot_deleted`\n- `actor_id: string` — Идентификатор пользователя, выполнившего действие\n- `actor_type: string` — Тип актора\n- `entity_id: string` — Идентификатор затронутой сущности\n- `entity_type: string` — Тип сущности\n- `limit: integer, int32` (default: 50) — Количество записей для возврата\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/audit_events?start_time=2025-05-01T09:11:00Z&end_time=2025-05-02T09:11:00Z&event_key=user_login&actor_id=98765&actor_type=User&entity_id=98765&entity_type=User&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: string` (required) — Уникальный идентификатор события. Пример: `\"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14\"`\n - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `event_key: string` (required) — Ключ типа события\n Значения: `user_login` — Пользователь успешно вошел в систему, `user_logout` — Пользователь вышел из системы, `user_2fa_fail` — Неудачная попытка двухфакторной аутентификации, `user_2fa_success` — Успешная двухфакторная аутентификация, `user_created` — Создана новая учетная запись пользователя, `user_deleted` — Учетная запись пользователя удалена, `user_role_changed` — Роль пользователя была изменена, `user_updated` — Данные пользователя обновлены, `tag_created` — Создан новый тег, `tag_deleted` — Тег удален, `user_added_to_tag` — Пользователь добавлен в тег, `user_removed_from_tag` — Пользователь удален из тега, `chat_created` — Создан новый чат, `chat_renamed` — Чат переименован, `chat_permission_changed` — Изменены права доступа к чату, `user_chat_join` — Пользователь присоединился к чату, `user_chat_leave` — Пользователь покинул чат, `tag_added_to_chat` — Тег добавлен в чат, `tag_removed_from_chat` — Тег удален из чата, `message_updated` — Сообщение отредактировано, `message_deleted` — Сообщение удалено, `message_created` — Сообщение создано, `reaction_created` — Реакция добавлена, `reaction_deleted` — Реакция удалена, `thread_created` — Тред создан, `access_token_created` — Создан новый токен доступа, `access_token_updated` — Токен доступа обновлен, `access_token_destroy` — Токен доступа удален, `kms_encrypt` — Данные зашифрованы, `kms_decrypt` — Данные расшифрованы, `audit_events_accessed` — Доступ к журналам аудита получен, `dlp_violation_detected` — Срабатывание правила DLP-системы, `search_users_api` — Поиск сотрудников через API, `search_chats_api` — Поиск чатов через API, `search_messages_api` — Поиск сообщений через API, `bot_scopes_updated` — Изменены скоупы токена бота, `bot_webhook_settings_updated` — Изменены настройки исходящего вебхука бота, `bot_token_recreated` — Токен бота перевыпущен (ротация), `bot_deleted` — Бот удалён\n - `entity_id: string` (required) — Идентификатор затронутой сущности. Пример: `\"98765\"`\n - `entity_type: string` (required) — Тип затронутой сущности. Пример: `\"User\"`\n - `actor_id: string` (required) — Идентификатор пользователя, выполнившего действие. Пример: `\"98765\"`\n - `actor_type: string` (required) — Тип актора. Пример: `\"User\"`\n - `details: anyOf` (required) — Дополнительные детали события. Структура зависит от значения event_key — см. описания значений поля event_key. Для событий без деталей возвращается пустой объект\n **Возможные варианты:**\n\n - **AuditDetailsEmpty**: Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated, bot_deleted\n - **AuditDetailsUserUpdated**: При: user_updated\n - `changed_attrs: array of string` (required) — Список изменённых полей\n - **AuditDetailsRoleChanged**: При: user_role_changed\n - `new_company_role: string` (required) — Новая роль\n - `previous_company_role: string` (required) — Предыдущая роль\n - `initiator_id: integer, int32` (required) — Идентификатор инициатора\n - **AuditDetailsTagName**: При: tag_created, tag_deleted\n - `name: string` (required) — Название тега\n - **AuditDetailsInitiator**: При: user_added_to_tag, user_removed_from_tag, user_chat_leave\n - `initiator_id: integer, int32` (required) — Идентификатор инициатора действия\n - **AuditDetailsInviter**: При: user_chat_join\n - `inviter_id: integer, int32` (required) — Идентификатор пригласившего\n - **AuditDetailsChatRenamed**: При: chat_renamed\n - `old_name: string` (required) — Прежнее название чата\n - `new_name: string` (required) — Новое название чата\n - **AuditDetailsChatPermission**: При: chat_permission_changed\n - `public_access: boolean` (required) — Публичный доступ\n - **AuditDetailsTagChat**: При: tag_added_to_chat\n - `chat_id: integer, int32` (required) — Идентификатор чата\n - `tag_name: string` (required) — Название тега\n - **AuditDetailsChatId**: При: tag_removed_from_chat\n - `chat_id: integer, int32` (required) — Идентификатор чата\n - **AuditDetailsTokenScopes**: При: access_token_created, access_token_updated, access_token_destroy\n - `scopes: array of string` (required) — Скоупы токена\n - **AuditDetailsKms**: При: kms_encrypt, kms_decrypt\n - `chat_id: integer, int32` (required) — Идентификатор чата\n - `message_id: integer, int32` (required) — Идентификатор сообщения\n - `reason: string` (required) — Причина операции\n - **AuditDetailsDlp**: При: dlp_violation_detected\n - `dlp_rule_id: integer, int32` (required) — Идентификатор правила DLP\n - `dlp_rule_name: string` (required) — Название правила DLP\n - `message_id: integer, int32` (required) — Идентификатор сообщения\n - `chat_id: integer, int32` (required) — Идентификатор чата\n - `user_id: integer, int32` (required) — Идентификатор пользователя\n - `action_message: string` (required) — Описание действия. `null`, если у действия правила текст не задан.\n - `conditions_matched: boolean` (required) — Результат проверки условий правила (true — условия сработали)\n - **AuditDetailsSearch**: При: search_users_api, search_chats_api, search_messages_api\n - `search_type: string` (required) — Тип поиска\n - `query_present: boolean` (required) — Указан ли поисковый запрос\n - `cursor_present: boolean` (required) — Использован ли курсор\n - `limit: integer, int32` (required) — Количество возвращённых результатов\n - `filters: Record` (required) — Применённые фильтры. Возможные ключи зависят от типа поиска: order, sort, created_from, created_to, company_roles (users), active, chat_subtype, personal (chats), chat_ids, user_ids (messages)\n **Структура значений Record:**\n - Тип значения: `any`\n - **AuditDetailsBotScopes**: При: bot_scopes_updated\n - `added_scopes: array of string` (required) — Скоупы, добавленные токену бота\n - `removed_scopes: array of string` (required) — Скоупы, отозванные у токена бота\n - **AuditDetailsBotWebhookSettings**: При: bot_webhook_settings_updated\n - `changes: Record` (required) — Изменённые настройки вебхука. Ключ — имя настройки (outgoing_url, ignore_self_messages, events_history_enabled), значение — объект с полями previous (прежнее значение) и new (новое значение)\n **Структура значений Record:**\n - Тип значения: `any`\n - `ip_address: string` (required) — IP-адрес, с которого было выполнено действие. Пример: `\"192.168.1.100\"`\n - `user_agent: string` (required) — User agent клиента. Пример: `\"Pachca/3.60.0 (co.staply.pachca; build:15; iOS 18.5.0) Alamofire/5.0.0\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": \"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14\",\n \"created_at\": \"2025-05-15T14:30:00.000Z\",\n \"event_key\": \"user_login\",\n \"entity_id\": \"98765\",\n \"entity_type\": \"User\",\n \"actor_id\": \"98765\",\n \"actor_type\": \"User\",\n \"details\": null,\n \"ip_address\": \"192.168.1.100\",\n \"user_agent\": \"Pachca/3.60.0 (co.staply.pachca; build:15; iOS 18.5.0) Alamofire/5.0.0\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/bot/recreate_token","summary":"Ротация собственного токена бота","scope":"bot_self:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots recreate-token-self","docLink":"https://dev.pachca.com/api/bots/recreate-token-self","describe":"# POST /bot/recreate_token — Ротация собственного токена бота\n\n> **Скоуп:** `bot_self:write`\n\n## Эквивалентная команда\n\n```bash\npachca bots recreate-token-self \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/recreate-token-self\nПолная справка: `pachca api POST /bot/recreate_token --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/bot/recreate_token","description":"Ротация собственного токена бота\n\nМетод позволяет боту сгенерировать себе новый `access_token` своим же токеном — без участия администратора и без знания собственного `id`. Ротируется токен того бота, которому принадлежит токен запроса.\n\nТокен, которым выполнен запрос, инвалидируется сразу. Новый токен возвращается в ответе один раз — обязательно сохраните его, иначе бот потеряет доступ к API.","parameters":[],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры созданного бота","required":["id","webhook","access_token"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled","single_chat","can_edit","who_can_add"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created","video_call_started","video_call_finished","video_call_recording_ready"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false},"single_chat":{"type":"boolean","description":"Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.","example":false},"can_edit":{"type":"array","description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","example":["admin"],"items":{"type":"string","description":"Роль, которой разрешено редактировать настройки бота","enum":["admin","chat_owners"],"x-enum-descriptions":{"admin":"Администраторы компании","chat_owners":"Владельцы чатов, в которые добавлен бот"},"$ref":"#/components/schemas/BotCanEdit"}},"who_can_add":{"description":"Кто может добавлять бота в чаты","example":"creator","allOf":[{"type":"string","description":"Кто может добавлять бота в чаты","enum":["creator","creator_admin","creator_admin_user","anyone"],"x-enum-descriptions":{"creator":"Только создатель бота","creator_admin":"Создатель и администраторы компании","creator_admin_user":"Создатель, администраторы и участники компании","anyone":"Любой пользователь, в том числе гости"},"$ref":"#/components/schemas/BotWhoCanAdd"}]}},"$ref":"#/components/schemas/BotWebhook"}]},"access_token":{"type":"string","description":"Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.","example":"bm90X2FfcmVhbF90b2tlbg"}},"$ref":"#/components/schemas/BotCreateResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false,"single_chat":false,"can_edit":["admin"],"who_can_add":"creator"},"access_token":"bm90X2FfcmVhbF90b2tlbg"}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bot_self:write","scopeRoles":["bot"]},"paginated":false},"docs":"# Ротация собственного токена бота\n\n**Метод**: `POST`\n\n**Путь**: `/bot/recreate_token`\n\n> **Скоуп:** `bot_self:write`\n\nМетод позволяет боту сгенерировать себе новый `access_token` своим же токеном — без участия администратора и без знания собственного `id`. Ротируется токен того бота, которому принадлежит токен запроса.\n\nТокен, которым выполнен запрос, инвалидируется сразу. Новый токен возвращается в ответе один раз — обязательно сохраните его, иначе бот потеряет доступ к API.\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/bot/recreate_token\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры созданного бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false`\n - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `[\"admin\"]`\n - `who_can_add: string` (required) — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `\"bm90X2FfcmVhbF90b2tlbg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false,\n \"single_chat\": false,\n \"can_edit\": [\n \"admin\"\n ],\n \"who_can_add\": \"creator\"\n },\n \"access_token\": \"bm90X2FfcmVhbF90b2tlbg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/bot/webhook","summary":"Саморегистрация вебхука бота","scope":"bot_self:webhook:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots update-webhook","docLink":"https://dev.pachca.com/api/bots/update-webhook","describe":"# PUT /bot/webhook — Саморегистрация вебхука бота\n\n> **Скоуп:** `bot_self:webhook:write`\n\n## Тело запроса\n\n- `webhook: object` (required) — Объект параметров вебхука\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пустая строка отключает вебхук.\n\n## Эквивалентная команда\n\n```bash\npachca bots update-webhook \\\n --outgoing-url=https://www.website.com/tasks/new \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/update-webhook\nПолная справка: `pachca api PUT /bot/webhook --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/bot/webhook","description":"Саморегистрация вебхука бота\n\nМетод позволяет боту самостоятельно изменить `URL` своего исходящего вебхука своим же токеном — без участия администратора и без знания собственного `id`. Меняется вебхук того бота, которому принадлежит токен. Чтобы отключить вебхук, передайте пустую строку в `outgoing_url`.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на саморегистрацию вебхука бота","required":["webhook"],"properties":{"webhook":{"type":"object","description":"Объект параметров вебхука","required":["outgoing_url"],"properties":{"outgoing_url":{"type":"string","description":"URL исходящего вебхука. Пустая строка отключает вебхук.","example":"https://www.website.com/tasks/new"}}}},"$ref":"#/components/schemas/BotWebhookSelfUpdateRequest"},"example":{"webhook":{"outgoing_url":"https://www.website.com/tasks/new"}}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры бота","required":["id","webhook"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled","single_chat","can_edit","who_can_add"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created","video_call_started","video_call_finished","video_call_recording_ready"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false},"single_chat":{"type":"boolean","description":"Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.","example":false},"can_edit":{"type":"array","description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","example":["admin"],"items":{"type":"string","description":"Роль, которой разрешено редактировать настройки бота","enum":["admin","chat_owners"],"x-enum-descriptions":{"admin":"Администраторы компании","chat_owners":"Владельцы чатов, в которые добавлен бот"},"$ref":"#/components/schemas/BotCanEdit"}},"who_can_add":{"description":"Кто может добавлять бота в чаты","example":"creator","allOf":[{"type":"string","description":"Кто может добавлять бота в чаты","enum":["creator","creator_admin","creator_admin_user","anyone"],"x-enum-descriptions":{"creator":"Только создатель бота","creator_admin":"Создатель и администраторы компании","creator_admin_user":"Создатель, администраторы и участники компании","anyone":"Любой пользователь, в том числе гости"},"$ref":"#/components/schemas/BotWhoCanAdd"}]}},"$ref":"#/components/schemas/BotWebhook"}]}},"$ref":"#/components/schemas/BotResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false,"single_chat":false,"can_edit":["admin"],"who_can_add":"creator"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bot_self:webhook:write","scopeRoles":["bot"]},"paginated":false},"docs":"# Саморегистрация вебхука бота\n\n**Метод**: `PUT`\n\n**Путь**: `/bot/webhook`\n\n> **Скоуп:** `bot_self:webhook:write`\n\nМетод позволяет боту самостоятельно изменить `URL` своего исходящего вебхука своим же токеном — без участия администратора и без знания собственного `id`. Меняется вебхук того бота, которому принадлежит токен. Чтобы отключить вебхук, передайте пустую строку в `outgoing_url`.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `webhook: object` (required) — Объект параметров вебхука\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пустая строка отключает вебхук.. Пример: `\"https://www.website.com/tasks/new\"`\n\n### Пример\n\n```json\n{\n \"webhook\": {\n \"outgoing_url\": \"https://www.website.com/tasks/new\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/bot/webhook\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"webhook\": {\n \"outgoing_url\": \"https://www.website.com/tasks/new\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false`\n - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `[\"admin\"]`\n - `who_can_add: string` (required) — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false,\n \"single_chat\": false,\n \"can_edit\": [\n \"admin\"\n ],\n \"who_can_add\": \"creator\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/bots","summary":"Список ботов","scope":"bots:read","plan":null,"auth":true,"paginated":true,"command":"pachca bots list","docLink":"https://dev.pachca.com/api/bots/list","describe":"# GET /bots — Список ботов\n\n> **Скоуп:** `bots:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `query` — query: Поисковая фраза для фильтрации ботов по имени\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca bots list \\\n --query=задач \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/list\nПолная справка: `pachca api GET /bots --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/bots","description":"Список ботов\n\nМетод для получения списка ботов. Возвращаются только боты, доступные вам для редактирования: созданные вами и те, чьи настройки открывают вам доступ к редактированию.","parameters":[{"name":"query","in":"query","description":"Поисковая фраза для фильтрации ботов по имени","required":false,"schema":{"type":"string","example":"задач"},"example":"задач","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTczODgxNn0"},"example":"eyJpZCI6MTczODgxNn0","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Параметры бота","required":["id","webhook"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled","single_chat","can_edit","who_can_add"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created","video_call_started","video_call_finished","video_call_recording_ready"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false},"single_chat":{"type":"boolean","description":"Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.","example":false},"can_edit":{"type":"array","description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","example":["admin"],"items":{"type":"string","description":"Роль, которой разрешено редактировать настройки бота","enum":["admin","chat_owners"],"x-enum-descriptions":{"admin":"Администраторы компании","chat_owners":"Владельцы чатов, в которые добавлен бот"},"$ref":"#/components/schemas/BotCanEdit"}},"who_can_add":{"description":"Кто может добавлять бота в чаты","example":"creator","allOf":[{"type":"string","description":"Кто может добавлять бота в чаты","enum":["creator","creator_admin","creator_admin_user","anyone"],"x-enum-descriptions":{"creator":"Только создатель бота","creator_admin":"Создатель и администраторы компании","creator_admin_user":"Создатель, администраторы и участники компании","anyone":"Любой пользователь, в том числе гости"},"$ref":"#/components/schemas/BotWhoCanAdd"}]}},"$ref":"#/components/schemas/BotWebhook"}]}},"$ref":"#/components/schemas/BotResponse"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}},"example":{"data":[{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false,"single_chat":false,"can_edit":["admin"],"who_can_add":"creator"}}],"meta":{"paginate":{"next_page":"eyJpZCI6MTczODgxNn0"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"bots:read","scopeRoles":["owner","admin","user"]},"paginated":true},"docs":"# Список ботов\n\n**Метод**: `GET`\n\n**Путь**: `/bots`\n\n> **Скоуп:** `bots:read`\n\nМетод для получения списка ботов. Возвращаются только боты, доступные вам для редактирования: созданные вами и те, чьи настройки открывают вам доступ к редактированию.\n\n## Параметры\n\n### Query параметры\n\n- `query: string` — Поисковая фраза для фильтрации ботов по имени\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/bots?query=задач&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false`\n - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `[\"admin\"]`\n - `who_can_add: string` (required) — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false,\n \"single_chat\": false,\n \"can_edit\": [\n \"admin\"\n ],\n \"who_can_add\": \"creator\"\n }\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"POST","path":"/bots","summary":"Новый бот","scope":"bots:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots create","docLink":"https://dev.pachca.com/api/bots/create","describe":"# POST /bots — Новый бот\n\n> **Скоуп:** `bots:write`\n\n## Тело запроса\n\n- `webhook: object` (required) — Объект параметров вебхука создаваемого бота\n - `name: string` (required) — Имя бота\n - `nickname: string` — Никнейм бота. Должен заканчиваться на `_bot`.\n - `outgoing_url: string` — URL исходящего вебхука\n - `events: array of string` — События, на которые подписан бот\n - `trigger_on: string` — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` — Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands\n - `scopes: array of string` — Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.\n - `template: string` — Шаблон форматирования входящего вебхука\n - `template_engine: string` — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` — Название поля проверки для верификации входящего вебхука\n - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука\n - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом\n - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий\n - `who_can_add: string` — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n - `can_edit: array of string` — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.\n - `single_chat: boolean` (default: false) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется.\n\n## Эквивалентная команда\n\n```bash\npachca bots create \\\n --name=\"Бот задач\" \\\n --nickname=tasks_bot \\\n --outgoing-url=https://www.website.com/tasks/new \\\n --events=message_new \\\n --commands=/task,/help \\\n --scopes=messages:create \\\n --template=\"Заказ от {{ client }} на сумму {{ amount }} ₽\" \\\n --challenge-key=challenge \\\n --can-edit=admin \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/create\nПолная справка: `pachca api POST /bots --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/bots","description":"Новый бот\n\nМетод для создания бота и получения его `access_token`.\n\nПри создании вы получите `access_token` бота — сразу сохраните его. Повторно получить токен вы сможете только через интерфейс (вкладка «API» настроек бота).","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание бота","required":["webhook"],"properties":{"webhook":{"type":"object","description":"Объект параметров вебхука создаваемого бота","required":["name"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота. Должен заканчиваться на `_bot`.","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new"},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created","video_call_started","video_call_finished","video_call_recording_ready"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","default":"commands","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands","example":["/task","/help"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука","example":"Заказ от {{ client }} на сумму {{ amount }} ₽"},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","default":"liquid","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука","example":"challenge"},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","default":true,"example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","default":false,"example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","default":false,"example":false},"who_can_add":{"description":"Кто может добавлять бота в чаты","default":"creator","example":"creator","allOf":[{"type":"string","description":"Кто может добавлять бота в чаты","enum":["creator","creator_admin","creator_admin_user","anyone"],"x-enum-descriptions":{"creator":"Только создатель бота","creator_admin":"Создатель и администраторы компании","creator_admin_user":"Создатель, администраторы и участники компании","anyone":"Любой пользователь, в том числе гости"},"$ref":"#/components/schemas/BotWhoCanAdd"}]},"can_edit":{"type":"array","description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","example":["admin"],"items":{"type":"string","description":"Роль, которой разрешено редактировать настройки бота","enum":["admin","chat_owners"],"x-enum-descriptions":{"admin":"Администраторы компании","chat_owners":"Владельцы чатов, в которые добавлен бот"},"$ref":"#/components/schemas/BotCanEdit"}},"single_chat":{"type":"boolean","description":"Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется.","default":false,"example":false}}}},"$ref":"#/components/schemas/BotCreateRequest"},"example":{"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"]}}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры созданного бота","required":["id","webhook","access_token"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled","single_chat","can_edit","who_can_add"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created","video_call_started","video_call_finished","video_call_recording_ready"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false},"single_chat":{"type":"boolean","description":"Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.","example":false},"can_edit":{"type":"array","description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","example":["admin"],"items":{"type":"string","description":"Роль, которой разрешено редактировать настройки бота","enum":["admin","chat_owners"],"x-enum-descriptions":{"admin":"Администраторы компании","chat_owners":"Владельцы чатов, в которые добавлен бот"},"$ref":"#/components/schemas/BotCanEdit"}},"who_can_add":{"description":"Кто может добавлять бота в чаты","example":"creator","allOf":[{"type":"string","description":"Кто может добавлять бота в чаты","enum":["creator","creator_admin","creator_admin_user","anyone"],"x-enum-descriptions":{"creator":"Только создатель бота","creator_admin":"Создатель и администраторы компании","creator_admin_user":"Создатель, администраторы и участники компании","anyone":"Любой пользователь, в том числе гости"},"$ref":"#/components/schemas/BotWhoCanAdd"}]}},"$ref":"#/components/schemas/BotWebhook"}]},"access_token":{"type":"string","description":"Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.","example":"bm90X2FfcmVhbF90b2tlbg"}},"$ref":"#/components/schemas/BotCreateResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false,"single_chat":false,"can_edit":["admin"],"who_can_add":"creator"},"access_token":"bm90X2FfcmVhbF90b2tlbg"}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"bots:write","scopeRoles":["owner","admin","user"]},"paginated":false},"docs":"# Новый бот\n\n**Метод**: `POST`\n\n**Путь**: `/bots`\n\n> **Скоуп:** `bots:write`\n\nМетод для создания бота и получения его `access_token`.\n\nПри создании вы получите `access_token` бота — сразу сохраните его. Повторно получить токен вы сможете только через интерфейс (вкладка «API» настроек бота).\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `webhook: object` (required) — Объект параметров вебхука создаваемого бота\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` — Никнейм бота. Должен заканчиваться на `_bot`.. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` — Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands. Пример: `[\"/task\",\"/help\"]`\n - `scopes: array of string` — Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.. Пример: `[\"messages:create\"]`\n - `template: string` — Шаблон форматирования входящего вебхука. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` — Название поля проверки для верификации входящего вебхука. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `who_can_add: string` — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n - `can_edit: array of string` — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `[\"admin\"]`\n - `single_chat: boolean` (default: false) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется.. Пример: `false`\n\n### Пример\n\n```json\n{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\",\n \"can_edit\": [\n \"admin\"\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/bots\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\",\n \"can_edit\": [\n \"admin\"\n ]\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры созданного бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false`\n - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `[\"admin\"]`\n - `who_can_add: string` (required) — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `\"bm90X2FfcmVhbF90b2tlbg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false,\n \"single_chat\": false,\n \"can_edit\": [\n \"admin\"\n ],\n \"who_can_add\": \"creator\"\n },\n \"access_token\": \"bm90X2FfcmVhbF90b2tlbg\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/bots/{id}","summary":"Информация о боте","scope":"bots:read","plan":null,"auth":true,"paginated":false,"command":"pachca bots get","docLink":"https://dev.pachca.com/api/bots/get","describe":"# GET /bots/{id} — Информация о боте\n\n> **Скоуп:** `bots:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор бота\n\n## Эквивалентная команда\n\n```bash\npachca bots get 1738816 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/get\nПолная справка: `pachca api GET /bots/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/bots/{id}","description":"Информация о боте\n\nМетод для получения параметров бота по его `id`.","parameters":[{"name":"id","in":"path","description":"Идентификатор бота","required":true,"schema":{"type":"integer","format":"int32","example":1738816},"example":1738816}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры бота","required":["id","webhook"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled","single_chat","can_edit","who_can_add"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created","video_call_started","video_call_finished","video_call_recording_ready"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false},"single_chat":{"type":"boolean","description":"Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.","example":false},"can_edit":{"type":"array","description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","example":["admin"],"items":{"type":"string","description":"Роль, которой разрешено редактировать настройки бота","enum":["admin","chat_owners"],"x-enum-descriptions":{"admin":"Администраторы компании","chat_owners":"Владельцы чатов, в которые добавлен бот"},"$ref":"#/components/schemas/BotCanEdit"}},"who_can_add":{"description":"Кто может добавлять бота в чаты","example":"creator","allOf":[{"type":"string","description":"Кто может добавлять бота в чаты","enum":["creator","creator_admin","creator_admin_user","anyone"],"x-enum-descriptions":{"creator":"Только создатель бота","creator_admin":"Создатель и администраторы компании","creator_admin_user":"Создатель, администраторы и участники компании","anyone":"Любой пользователь, в том числе гости"},"$ref":"#/components/schemas/BotWhoCanAdd"}]}},"$ref":"#/components/schemas/BotWebhook"}]}},"$ref":"#/components/schemas/BotResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false,"single_chat":false,"can_edit":["admin"],"who_can_add":"creator"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bots:read","scopeRoles":["owner","admin","user"]},"paginated":false},"docs":"# Информация о боте\n\n**Метод**: `GET`\n\n**Путь**: `/bots/{id}`\n\n> **Скоуп:** `bots:read`\n\nМетод для получения параметров бота по его `id`.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор бота\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/bots/1738816\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false`\n - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `[\"admin\"]`\n - `who_can_add: string` (required) — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false,\n \"single_chat\": false,\n \"can_edit\": [\n \"admin\"\n ],\n \"who_can_add\": \"creator\"\n }\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/bots/{id}","summary":"Редактирование бота","scope":"bots:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots update","docLink":"https://dev.pachca.com/api/bots/update","describe":"# PUT /bots/{id} — Редактирование бота\n\n> **Скоуп:** `bots:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор бота\n\n## Тело запроса\n\n- `webhook: object` (required) — Объект параметров вебхука редактируемого бота\n - `name: string` — Имя бота\n - `nickname: string` — Никнейм бота. Должен заканчиваться на `_bot`.\n - `outgoing_url: string` — URL исходящего вебхука\n - `events: array of string` — События, на которые подписан бот\n - `trigger_on: string` — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` — Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands\n - `scopes: array of string` — Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.\n - `template: string` — Шаблон форматирования входящего вебхука\n - `template_engine: string` — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` — Название поля проверки для верификации входящего вебхука\n - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука\n - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом\n - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий\n - `who_can_add: string` — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n - `can_edit: array of string` — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.\n\n## Эквивалентная команда\n\n```bash\npachca bots update 1738816 \\\n --name=\"Бот задач\" \\\n --nickname=tasks_bot \\\n --outgoing-url=https://www.website.com/tasks/new \\\n --events=message_new \\\n --commands=/task,/help \\\n --scopes=messages:create \\\n --template=\"Заказ от {{ client }} на сумму {{ amount }} ₽\" \\\n --challenge-key=challenge \\\n --can-edit=admin \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/update\nПолная справка: `pachca api PUT /bots/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/bots/{id}","description":"Редактирование бота\n\nМетод для редактирования бота.\n\nДля редактирования бота вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры бота указываются в теле запроса.\n\nВы не можете редактировать бота, настройки которого вам недоступны (поле «Кто может редактировать настройки бота» находится во вкладке «Основное» в настройках бота).","parameters":[{"name":"id","in":"path","description":"Идентификатор бота","required":true,"schema":{"type":"integer","format":"int32","example":1738816},"example":1738816}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на обновление бота","required":["webhook"],"properties":{"webhook":{"type":"object","description":"Объект параметров вебхука редактируемого бота","properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота. Должен заканчиваться на `_bot`.","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new"},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created","video_call_started","video_call_finished","video_call_recording_ready"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","default":"commands","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands","example":["/task","/help"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука","example":"Заказ от {{ client }} на сумму {{ amount }} ₽"},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","default":"liquid","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука","example":"challenge"},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","default":true,"example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","default":false,"example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","default":false,"example":false},"who_can_add":{"description":"Кто может добавлять бота в чаты","default":"creator","example":"creator","allOf":[{"type":"string","description":"Кто может добавлять бота в чаты","enum":["creator","creator_admin","creator_admin_user","anyone"],"x-enum-descriptions":{"creator":"Только создатель бота","creator_admin":"Создатель и администраторы компании","creator_admin_user":"Создатель, администраторы и участники компании","anyone":"Любой пользователь, в том числе гости"},"$ref":"#/components/schemas/BotWhoCanAdd"}]},"can_edit":{"type":"array","description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","example":["admin"],"items":{"type":"string","description":"Роль, которой разрешено редактировать настройки бота","enum":["admin","chat_owners"],"x-enum-descriptions":{"admin":"Администраторы компании","chat_owners":"Владельцы чатов, в которые добавлен бот"},"$ref":"#/components/schemas/BotCanEdit"}}}}},"$ref":"#/components/schemas/BotUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры бота","required":["id","webhook"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled","single_chat","can_edit","who_can_add"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created","video_call_started","video_call_finished","video_call_recording_ready"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false},"single_chat":{"type":"boolean","description":"Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.","example":false},"can_edit":{"type":"array","description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","example":["admin"],"items":{"type":"string","description":"Роль, которой разрешено редактировать настройки бота","enum":["admin","chat_owners"],"x-enum-descriptions":{"admin":"Администраторы компании","chat_owners":"Владельцы чатов, в которые добавлен бот"},"$ref":"#/components/schemas/BotCanEdit"}},"who_can_add":{"description":"Кто может добавлять бота в чаты","example":"creator","allOf":[{"type":"string","description":"Кто может добавлять бота в чаты","enum":["creator","creator_admin","creator_admin_user","anyone"],"x-enum-descriptions":{"creator":"Только создатель бота","creator_admin":"Создатель и администраторы компании","creator_admin_user":"Создатель, администраторы и участники компании","anyone":"Любой пользователь, в том числе гости"},"$ref":"#/components/schemas/BotWhoCanAdd"}]}},"$ref":"#/components/schemas/BotWebhook"}]}},"$ref":"#/components/schemas/BotResponse"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bots:write","scopeRoles":["owner","admin","user"]},"paginated":false},"docs":"# Редактирование бота\n\n**Метод**: `PUT`\n\n**Путь**: `/bots/{id}`\n\n> **Скоуп:** `bots:write`\n\nМетод для редактирования бота.\n\nДля редактирования бота вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры бота указываются в теле запроса.\n\nВы не можете редактировать бота, настройки которого вам недоступны (поле «Кто может редактировать настройки бота» находится во вкладке «Основное» в настройках бота).\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор бота\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `webhook: object` (required) — Объект параметров вебхука редактируемого бота\n - `name: string` — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` — Никнейм бота. Должен заканчиваться на `_bot`.. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` — Команды бота (триггер-слова), на которые он реагирует при trigger_on = commands. Пример: `[\"/task\",\"/help\"]`\n - `scopes: array of string` — Скоупы (права доступа) токена бота. Если не указано, бот получает набор по умолчанию.. Пример: `[\"messages:create\"]`\n - `template: string` — Шаблон форматирования входящего вебхука. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` — Название поля проверки для верификации входящего вебхука. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (default: true) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (default: false) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (default: false) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `who_can_add: string` — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n - `can_edit: array of string` — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `[\"admin\"]`\n\n### Пример\n\n```json\n{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\",\n \"can_edit\": [\n \"admin\"\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/bots/1738816\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"commands\": [\n \"/task\",\n \"/help\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"challenge_key\": \"challenge\",\n \"can_edit\": [\n \"admin\"\n ]\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false`\n - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `[\"admin\"]`\n - `who_can_add: string` (required) — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false,\n \"single_chat\": false,\n \"can_edit\": [\n \"admin\"\n ],\n \"who_can_add\": \"creator\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/bots/{id}","summary":"Удаление бота","scope":"bots:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots delete","docLink":"https://dev.pachca.com/api/bots/delete","describe":"# DELETE /bots/{id} — Удаление бота\n\n> **Скоуп:** `bots:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор бота\n\n## Эквивалентная команда\n\n```bash\npachca bots delete 1738816 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/delete\nПолная справка: `pachca api DELETE /bots/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/bots/{id}","description":"Удаление бота\n\nМетод для удаления бота. Прежний `access_token` бота сразу инвалидируется, бот исключается из всех чатов, его исходящий вебхук удаляется.\n\nУдаление доступно создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Владельцы и администраторы чатов удалять бота не могут, даже если им разрешено его редактировать.\n\nДля удаления бота вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор бота","required":true,"schema":{"type":"integer","format":"int32","example":1738816},"example":1738816}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bots:write","scopeRoles":["owner","admin","user"]},"paginated":false},"docs":"# Удаление бота\n\n**Метод**: `DELETE`\n\n**Путь**: `/bots/{id}`\n\n> **Скоуп:** `bots:write`\n\nМетод для удаления бота. Прежний `access_token` бота сразу инвалидируется, бот исключается из всех чатов, его исходящий вебхук удаляется.\n\nУдаление доступно создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Владельцы и администраторы чатов удалять бота не могут, даже если им разрешено его редактировать.\n\nДля удаления бота вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор бота\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/bots/1738816\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/bots/{id}/recreate_token","summary":"Ротация токена бота","scope":"bots:write","plan":null,"auth":true,"paginated":false,"command":"pachca bots recreate-token","docLink":"https://dev.pachca.com/api/bots/recreate-token","describe":"# POST /bots/{id}/recreate_token — Ротация токена бота\n\n> **Скоуп:** `bots:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор бота\n\n## Эквивалентная команда\n\n```bash\npachca bots recreate-token 1738816 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/recreate-token\nПолная справка: `pachca api POST /bots/{id}/recreate_token --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/bots/{id}/recreate_token","description":"Ротация токена бота\n\nМетод генерирует боту новый `access_token` и сразу инвалидирует прежний. Используйте его при компрометации токена или плановой ротации секрета в `CI`.\n\nРотация доступна создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу.","parameters":[{"name":"id","in":"path","description":"Идентификатор бота","required":true,"schema":{"type":"integer","format":"int32","example":1738816},"example":1738816}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Параметры созданного бота","required":["id","webhook","access_token"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор бота (совпадает с `user_id` бота)","example":1738816},"webhook":{"description":"Объект параметров вебхука","allOf":[{"type":"object","description":"Параметры вебхука бота","required":["name","nickname","outgoing_url","events","trigger_on","commands","scopes","template","template_engine","challenge_key","link_preview_enabled","ignore_self_messages","events_history_enabled","single_chat","can_edit","who_can_add"],"properties":{"name":{"type":"string","description":"Имя бота","example":"Бот задач"},"nickname":{"type":"string","description":"Никнейм бота","example":"tasks_bot"},"outgoing_url":{"type":"string","description":"URL исходящего вебхука","example":"https://www.website.com/tasks/new","nullable":true},"events":{"type":"array","description":"События, на которые подписан бот","example":["message_new"],"items":{"type":"string","description":"Событие исходящего вебхука бота","enum":["message_new","message_update","message_delete","reaction_new","reaction_delete","button_click","message_link_shared","chat_member_add","chat_member_remove","company_member_invite","company_member_confirm","company_member_suspend","company_member_activate","company_member_delete","company_member_update","bill_created","video_call_started","video_call_finished","video_call_recording_ready"],"x-enum-descriptions":{"message_new":"Новое сообщение","message_update":"Сообщение отредактировано","message_delete":"Сообщение удалено","reaction_new":"Добавлена реакция","reaction_delete":"Реакция удалена","button_click":"Нажата кнопка","message_link_shared":"В сообщении отправлена ссылка (для unfurl)","chat_member_add":"Участник добавлен в чат","chat_member_remove":"Участник удалён из чата","company_member_invite":"Сотрудник приглашён в компанию","company_member_confirm":"Сотрудник подтвердил приглашение","company_member_suspend":"Сотрудник деактивирован","company_member_activate":"Сотрудник активирован","company_member_delete":"Сотрудник удалён из компании","company_member_update":"Данные сотрудника изменены","bill_created":"Создан счёт"},"$ref":"#/components/schemas/BotEventName"}},"trigger_on":{"description":"Условие срабатывания исходящего вебхука","example":"commands","allOf":[{"type":"string","description":"Условие срабатывания исходящего вебхука бота","enum":["commands","all_messages","unfurl"],"x-enum-descriptions":{"commands":"Только на команды (триггер-слова) из commands","all_messages":"На все сообщения в чатах, где есть бот","unfurl":"На развёртывание ссылок (link previews)"},"$ref":"#/components/schemas/BotTriggerOn"}]},"commands":{"type":"array","description":"Команды бота (триггер-слова)","example":["/task"],"items":{"type":"string"}},"scopes":{"type":"array","description":"Скоупы (права доступа) токена бота","example":["messages:create"],"items":{"type":"string"}},"template":{"type":"string","description":"Шаблон форматирования входящего вебхука. `null`, если не задан.","example":"Заказ от {{ client }} на сумму {{ amount }} ₽","nullable":true},"template_engine":{"description":"Шаблонизатор для обработки шаблона входящего вебхука","example":"liquid","allOf":[{"type":"string","description":"Шаблонизатор для форматирования входящих вебхуков","enum":["liquid","mustache"],"x-enum-descriptions":{"liquid":"Liquid — условия, циклы и фильтры","mustache":"Mustache — простая подстановка без логики"},"$ref":"#/components/schemas/BotTemplateEngine"}]},"challenge_key":{"type":"string","description":"Название поля проверки для верификации входящего вебхука. `null`, если не задано.","example":"challenge","nullable":true},"link_preview_enabled":{"type":"boolean","description":"Показывать превью ссылок в сообщениях входящего вебхука","example":true},"ignore_self_messages":{"type":"boolean","description":"Игнорировать входящие сообщения, отправленные самим ботом","example":false},"events_history_enabled":{"type":"boolean","description":"Сохранять историю событий бота для последующего получения через метод истории событий","example":false},"single_chat":{"type":"boolean","description":"Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.","example":false},"can_edit":{"type":"array","description":"Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.","example":["admin"],"items":{"type":"string","description":"Роль, которой разрешено редактировать настройки бота","enum":["admin","chat_owners"],"x-enum-descriptions":{"admin":"Администраторы компании","chat_owners":"Владельцы чатов, в которые добавлен бот"},"$ref":"#/components/schemas/BotCanEdit"}},"who_can_add":{"description":"Кто может добавлять бота в чаты","example":"creator","allOf":[{"type":"string","description":"Кто может добавлять бота в чаты","enum":["creator","creator_admin","creator_admin_user","anyone"],"x-enum-descriptions":{"creator":"Только создатель бота","creator_admin":"Создатель и администраторы компании","creator_admin_user":"Создатель, администраторы и участники компании","anyone":"Любой пользователь, в том числе гости"},"$ref":"#/components/schemas/BotWhoCanAdd"}]}},"$ref":"#/components/schemas/BotWebhook"}]},"access_token":{"type":"string","description":"Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.","example":"bm90X2FfcmVhbF90b2tlbg"}},"$ref":"#/components/schemas/BotCreateResponse"}}},"example":{"data":{"id":1738816,"webhook":{"name":"Бот задач","nickname":"tasks_bot","outgoing_url":"https://www.website.com/tasks/new","events":["message_new"],"trigger_on":"commands","commands":["/task"],"scopes":["messages:create"],"template":"Заказ от {{ client }} на сумму {{ amount }} ₽","template_engine":"liquid","challenge_key":"challenge","link_preview_enabled":true,"ignore_self_messages":false,"events_history_enabled":false,"single_chat":false,"can_edit":["admin"],"who_can_add":"creator"},"access_token":"bm90X2FfcmVhbF90b2tlbg"}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"bots:write","scopeRoles":["owner","admin","user"]},"paginated":false},"docs":"# Ротация токена бота\n\n**Метод**: `POST`\n\n**Путь**: `/bots/{id}/recreate_token`\n\n> **Скоуп:** `bots:write`\n\nМетод генерирует боту новый `access_token` и сразу инвалидирует прежний. Используйте его при компрометации токена или плановой ротации секрета в `CI`.\n\nРотация доступна создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор бота\n\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/bots/1738816/recreate_token\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Параметры созданного бота\n - `id: integer, int32` (required) — Идентификатор бота (совпадает с `user_id` бота). Пример: `1738816`\n - `webhook: object` (required) — Объект параметров вебхука\n - `name: string` (required) — Имя бота. Пример: `\"Бот задач\"`\n - `nickname: string` (required) — Никнейм бота. Пример: `\"tasks_bot\"`\n - `outgoing_url: string` (required) — URL исходящего вебхука. Пример: `\"https://www.website.com/tasks/new\"`\n - `events: array of string` (required) — События, на которые подписан бот. Пример: `[\"message_new\"]`\n - `trigger_on: string` (required) — Условие срабатывания исходящего вебхука\n Значения: `commands` — Только на команды (триггер-слова) из commands, `all_messages` — На все сообщения в чатах, где есть бот, `unfurl` — На развёртывание ссылок (link previews)\n - `commands: array of string` (required) — Команды бота (триггер-слова). Пример: `[\"/task\"]`\n - `scopes: array of string` (required) — Скоупы (права доступа) токена бота. Пример: `[\"messages:create\"]`\n - `template: string` (required) — Шаблон форматирования входящего вебхука. `null`, если не задан.. Пример: `\"Заказ от {{ client }} на сумму {{ amount }} ₽\"`\n - `template_engine: string` (required) — Шаблонизатор для обработки шаблона входящего вебхука\n Значения: `liquid` — Liquid — условия, циклы и фильтры, `mustache` — Mustache — простая подстановка без логики\n - `challenge_key: string` (required) — Название поля проверки для верификации входящего вебхука. `null`, если не задано.. Пример: `\"challenge\"`\n - `link_preview_enabled: boolean` (required) — Показывать превью ссылок в сообщениях входящего вебхука. Пример: `true`\n - `ignore_self_messages: boolean` (required) — Игнорировать входящие сообщения, отправленные самим ботом. Пример: `false`\n - `events_history_enabled: boolean` (required) — Сохранять историю событий бота для последующего получения через метод истории событий. Пример: `false`\n - `single_chat: boolean` (required) — Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.. Пример: `false`\n - `can_edit: array of string` (required) — Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.. Пример: `[\"admin\"]`\n - `who_can_add: string` (required) — Кто может добавлять бота в чаты\n Значения: `creator` — Только создатель бота, `creator_admin` — Создатель и администраторы компании, `creator_admin_user` — Создатель, администраторы и участники компании, `anyone` — Любой пользователь, в том числе гости\n - `access_token: string` (required) — Токен доступа бота. Возвращается при создании бота и при ротации токена. Текущий токен также можно посмотреть и скопировать в интерфейсе — вкладка «API» настроек бота.. Пример: `\"bm90X2FfcmVhbF90b2tlbg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 1738816,\n \"webhook\": {\n \"name\": \"Бот задач\",\n \"nickname\": \"tasks_bot\",\n \"outgoing_url\": \"https://www.website.com/tasks/new\",\n \"events\": [\n \"message_new\"\n ],\n \"trigger_on\": \"commands\",\n \"commands\": [\n \"/task\"\n ],\n \"scopes\": [\n \"messages:create\"\n ],\n \"template\": \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n \"template_engine\": \"liquid\",\n \"challenge_key\": \"challenge\",\n \"link_preview_enabled\": true,\n \"ignore_self_messages\": false,\n \"events_history_enabled\": false,\n \"single_chat\": false,\n \"can_edit\": [\n \"admin\"\n ],\n \"who_can_add\": \"creator\"\n },\n \"access_token\": \"bm90X2FfcmVhbF90b2tlbg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/chats","summary":"Новый чат","scope":"chats:create","plan":null,"auth":true,"paginated":false,"command":"pachca chats create","docLink":"https://dev.pachca.com/api/chats/create","describe":"# POST /chats — Новый чат\n\n> **Скоуп:** `chats:create`\n\n## Тело запроса\n\n- `chat: object` (required) — Собранный объект параметров создаваемого чата\n - `name: string` (required) — Название\n - `member_ids: array of integer` — Массив идентификаторов пользователей, которые станут участниками\n - `group_tag_ids: array of integer` — Массив идентификаторов тегов, которые станут участниками\n - `channel: boolean` (default: false) — Является каналом\n - `public: boolean` (default: false) — Открытый доступ\n\n## Эквивалентная команда\n\n```bash\npachca chats create \\\n --name=\"🤿 aqua\" \\\n --member-ids=186,187 \\\n --group-tag-ids=86,18 \\\n --channel \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/create\nПолная справка: `pachca api POST /chats --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/chats","description":"Новый чат\n\nМетод для создания нового чата.\n\nДля создания личной переписки 1 на 1 с пользователем пользуйтесь методом [Новое сообщение](POST /messages).\n\nПри создании чата вы автоматически становитесь участником.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание чата","required":["chat"],"properties":{"chat":{"type":"object","description":"Собранный объект параметров создаваемого чата","required":["name"],"properties":{"name":{"type":"string","description":"Название","example":"🤿 aqua"},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, которые станут участниками","example":[186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, которые станут участниками","example":[86,18],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","default":false,"example":true},"public":{"type":"boolean","description":"Открытый доступ","default":false,"example":false}}}},"$ref":"#/components/schemas/ChatCreateRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:create","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новый чат\n\n**Метод**: `POST`\n\n**Путь**: `/chats`\n\n> **Скоуп:** `chats:create`\n\nМетод для создания нового чата.\n\nДля создания личной переписки 1 на 1 с пользователем пользуйтесь методом [Новое сообщение](POST /messages).\n\nПри создании чата вы автоматически становитесь участником.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `chat: object` (required) — Собранный объект параметров создаваемого чата\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `member_ids: array of integer` — Массив идентификаторов пользователей, которые станут участниками. Пример: `[186,187]`\n - `group_tag_ids: array of integer` — Массив идентификаторов тегов, которые станут участниками. Пример: `[86,18]`\n - `channel: boolean` (default: false) — Является каналом. Пример: `true`\n - `public: boolean` (default: false) — Открытый доступ. Пример: `false`\n\n### Пример\n\n```json\n{\n \"chat\": {\n \"name\": \"🤿 aqua\",\n \"member_ids\": [\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 86,\n 18\n ],\n \"channel\": true\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"chat\": {\n \"name\": \"🤿 aqua\",\n \"member_ids\": [\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 86,\n 18\n ],\n \"channel\": true\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Чат\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/chats","summary":"Список чатов","scope":"chats:read","plan":null,"auth":true,"paginated":true,"command":"pachca chats list","docLink":"https://dev.pachca.com/api/chats/list","describe":"# GET /chats — Список чатов\n\n> **Скоуп:** `chats:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `sort` — query: Поле сортировки\n- `order` — query: Направление сортировки\n- `availability` — query: Параметр, который отвечает за доступность и выборку чатов для пользователя\n- `last_message_at_after` — query: Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `last_message_at_before` — query: Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `personal` — query: Фильтрация по личным и групповым чатам. Если параметр не указан, возвращаются любые чаты.\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca chats list \\\n --sort=id \\\n --order=desc \\\n --availability=is_member \\\n --last-message-at-after=2025-01-01T00:00:00.000Z \\\n --last-message-at-before=2025-02-01T00:00:00.000Z \\\n --no-personal \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/list\nПолная справка: `pachca api GET /chats --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/chats","description":"Список чатов\n\nМетод для получения списка чатов по заданным параметрам.","parameters":[{"name":"sort","in":"query","description":"Поле сортировки","required":false,"schema":{"default":"id","allOf":[{"type":"string","description":"Поле сортировки чатов","enum":["id","last_message_at"],"x-enum-descriptions":{"id":"По идентификатору чата","last_message_at":"По дате и времени создания последнего сообщения"},"$ref":"#/components/schemas/ChatSortField"}]},"example":"id","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"default":"desc","allOf":[{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"$ref":"#/components/schemas/SortOrder"}]},"example":"desc","explode":false},{"name":"availability","in":"query","description":"Параметр, который отвечает за доступность и выборку чатов для пользователя","required":false,"schema":{"default":"is_member","allOf":[{"type":"string","description":"Доступность чатов для пользователя","enum":["is_member","public"],"x-enum-descriptions":{"is_member":"Чаты, где пользователь является участником","public":"Все открытые чаты компании, вне зависимости от участия в них пользователя"},"$ref":"#/components/schemas/ChatAvailability"}]},"example":"is_member","explode":false},{"name":"last_message_at_after","in":"query","description":"Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"last_message_at_before","in":"query","description":"Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"personal","in":"query","description":"Фильтрация по личным и групповым чатам. Если параметр не указан, возвращаются любые чаты.","required":false,"schema":{"type":"boolean","example":false},"example":false,"explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список чатов\n\n**Метод**: `GET`\n\n**Путь**: `/chats`\n\n> **Скоуп:** `chats:read`\n\nМетод для получения списка чатов по заданным параметрам.\n\n## Параметры\n\n### Query параметры\n\n- `sort: string` (default: id) — Поле сортировки\n- `order: string` (default: desc) — Направление сортировки\n- `availability: string` (default: is_member) — Параметр, который отвечает за доступность и выборку чатов для пользователя\n- `last_message_at_after: date-time` — Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `last_message_at_before: date-time` — Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `personal: boolean` — Фильтрация по личным и групповым чатам. Если параметр не указан, возвращаются любые чаты.\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/chats?sort=id&order=desc&availability=is_member&last_message_at_after=2025-01-01T00:00:00.000Z&last_message_at_before=2025-02-01T00:00:00.000Z&personal=false&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/chats/exports","summary":"Экспорт сообщений","scope":"chat_exports:write","plan":"corporation","auth":true,"paginated":false,"command":"pachca chats request-export","docLink":"https://dev.pachca.com/api/chats/request-export","describe":"# POST /chats/exports — Экспорт сообщений\n\n> **Скоуп:** `chat_exports:write`\n\n> **Тариф:** Корпорация\n\n## Тело запроса\n\n- `start_at: date` (required) — Дата начала для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD\n- `end_at: date` (required) — Дата окончания для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD\n- `webhook_url: string` (required) — Адрес, на который будет отправлен вебхук по завершению экспорта\n- `chat_ids: array of integer` — Массив идентификаторов чатов. Указывается, если нужно получить сообщения только некоторых чатов.\n- `skip_chats_file: boolean` (default: false) — Пропуск формирования файла со списком чатов (chats.json)\n\n## Эквивалентная команда\n\n```bash\npachca chats request-export \\\n --start-at=2025-03-20 \\\n --end-at=2025-03-20 \\\n --webhook-url=https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2 \\\n --chat-ids=1381521 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/request-export\nПолная справка: `pachca api POST /chats/exports --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/chats/exports","description":"Экспорт сообщений\n\nМетод для запрашивания экспорта сообщений за указанный период.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на экспорт сообщений","required":["start_at","end_at","webhook_url"],"properties":{"start_at":{"type":"string","format":"date","description":"Дата начала для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD","example":"2025-03-20"},"end_at":{"type":"string","format":"date","description":"Дата окончания для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD","example":"2025-03-20"},"webhook_url":{"type":"string","description":"Адрес, на который будет отправлен вебхук по завершению экспорта","example":"https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2"},"chat_ids":{"type":"array","description":"Массив идентификаторов чатов. Указывается, если нужно получить сообщения только некоторых чатов.","example":[1381521],"items":{"type":"integer","format":"int32"}},"skip_chats_file":{"type":"boolean","description":"Пропуск формирования файла со списком чатов (chats.json)","default":false,"example":false}},"$ref":"#/components/schemas/ExportRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_exports:write","plan":"corporation","scopeRoles":["owner"]},"paginated":false},"docs":"# Экспорт сообщений\n\n**Метод**: `POST`\n\n**Путь**: `/chats/exports`\n\n> **Скоуп:** `chat_exports:write`\n\n> **Внимание:** Доступно только на тарифе **Корпорация**\n\nМетод для запрашивания экспорта сообщений за указанный период.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `start_at: date` (required) — Дата начала для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD. Пример: `\"2025-03-20\"`\n- `end_at: date` (required) — Дата окончания для экспорта (ISO-8601, UTC+0) в формате YYYY-MM-DD. Пример: `\"2025-03-20\"`\n- `webhook_url: string` (required) — Адрес, на который будет отправлен вебхук по завершению экспорта. Пример: `\"https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2\"`\n- `chat_ids: array of integer` — Массив идентификаторов чатов. Указывается, если нужно получить сообщения только некоторых чатов.. Пример: `[1381521]`\n- `skip_chats_file: boolean` (default: false) — Пропуск формирования файла со списком чатов (chats.json). Пример: `false`\n\n### Пример\n\n```json\n{\n \"start_at\": \"2025-03-20\",\n \"end_at\": \"2025-03-20\",\n \"webhook_url\": \"https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2\",\n \"chat_ids\": [\n 1381521\n ]\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/exports\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"start_at\": \"2025-03-20\",\n \"end_at\": \"2025-03-20\",\n \"webhook_url\": \"https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2\",\n \"chat_ids\": [\n 1381521\n ]\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/chats/exports/{id}","summary":"Скачать архив экспорта","scope":"chat_exports:read","plan":"corporation","auth":true,"paginated":false,"command":"pachca chats download-export","docLink":"https://dev.pachca.com/api/chats/download-export","describe":"# GET /chats/exports/{id} — Скачать архив экспорта\n\n> **Скоуп:** `chat_exports:read`\n\n> **Тариф:** Корпорация\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор экспорта\n\n## Эквивалентная команда\n\n```bash\npachca chats download-export 22322 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/download-export\nПолная справка: `pachca api GET /chats/exports/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/chats/exports/{id}","description":"Скачать архив экспорта\n\nМетод для скачивания готового архива экспорта сообщений.\n\nДля получения архива вам необходимо знать его `id` и указать его в `URL` запроса.\n\nВ ответ на запрос сервер вернёт `302 Found` с заголовком `Location`, содержащим временную ссылку на скачивание файла. Большинство HTTP-клиентов автоматически следуют редиректу и скачивают файл.","parameters":[{"name":"id","in":"path","description":"Идентификатор экспорта","required":true,"schema":{"type":"integer","format":"int32","example":22322},"example":22322}],"responses":{"302":{"description":"Redirection","headers":{"location":{"schema":{"type":"string","format":"uri"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"},{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_exports:read","plan":"corporation","scopeRoles":["owner"]},"paginated":false},"docs":"# Скачать архив экспорта\n\n**Метод**: `GET`\n\n**Путь**: `/chats/exports/{id}`\n\n> **Скоуп:** `chat_exports:read`\n\n> **Внимание:** Доступно только на тарифе **Корпорация**\n\nМетод для скачивания готового архива экспорта сообщений.\n\nДля получения архива вам необходимо знать его `id` и указать его в `URL` запроса.\n\nВ ответ на запрос сервер вернёт `302 Found` с заголовком `Location`, содержащим временную ссылку на скачивание файла. Большинство HTTP-клиентов автоматически следуют редиректу и скачивают файл.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор экспорта\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/exports/22322\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 302: Redirection\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n- **Вариант 2**\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/chats/{id}","summary":"Информация о чате","scope":"chats:read","plan":null,"auth":true,"paginated":false,"command":"pachca chats get","docLink":"https://dev.pachca.com/api/chats/get","describe":"# GET /chats/{id} — Информация о чате\n\n> **Скоуп:** `chats:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Эквивалентная команда\n\n```bash\npachca chats get 334 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/get\nПолная справка: `pachca api GET /chats/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/chats/{id}","description":"Информация о чате\n\nМетод для получения информации о чате.\n\nДля получения чата вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о чате\n\n**Метод**: `GET`\n\n**Путь**: `/chats/{id}`\n\n> **Скоуп:** `chats:read`\n\nМетод для получения информации о чате.\n\nДля получения чата вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/334\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Чат\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/chats/{id}","summary":"Редактирование чата","scope":"chats:update","plan":null,"auth":true,"paginated":false,"command":"pachca chats update","docLink":"https://dev.pachca.com/api/chats/update","describe":"# PUT /chats/{id} — Редактирование чата\n\n> **Скоуп:** `chats:update`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Тело запроса\n\n- `chat: object` (required) — Собранный объект параметров обновляемого чата\n - `name: string` — Название\n - `public: boolean` — Открытый доступ\n\n## Эквивалентная команда\n\n```bash\npachca chats update 334 \\\n --name=Бассейн \\\n --public \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/update\nПолная справка: `pachca api PUT /chats/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/chats/{id}","description":"Редактирование чата\n\nМетод для обновления параметров чата.\n\nДля обновления нужно знать `id` чата и указать его в `URL`. Все обновляемые поля передаются в теле запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на обновление чата","required":["chat"],"properties":{"chat":{"type":"object","description":"Собранный объект параметров обновляемого чата","properties":{"name":{"type":"string","description":"Название","example":"Бассейн"},"public":{"type":"boolean","description":"Открытый доступ","example":true}}}},"$ref":"#/components/schemas/ChatUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:update","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Редактирование чата\n\n**Метод**: `PUT`\n\n**Путь**: `/chats/{id}`\n\n> **Скоуп:** `chats:update`\n\nМетод для обновления параметров чата.\n\nДля обновления нужно знать `id` чата и указать его в `URL`. Все обновляемые поля передаются в теле запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `chat: object` (required) — Собранный объект параметров обновляемого чата\n - `name: string` — Название. Пример: `\"Бассейн\"`\n - `public: boolean` — Открытый доступ. Пример: `true`\n\n### Пример\n\n```json\n{\n \"chat\": {\n \"name\": \"Бассейн\",\n \"public\": true\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/chats/334\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"chat\": {\n \"name\": \"Бассейн\",\n \"public\": true\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Чат\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/chats/{id}/archive","summary":"Архивация чата","scope":"chats:archive","plan":null,"auth":true,"paginated":false,"command":"pachca chats archive","docLink":"https://dev.pachca.com/api/chats/archive","describe":"# PUT /chats/{id}/archive — Архивация чата\n\n> **Скоуп:** `chats:archive`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Эквивалентная команда\n\n```bash\npachca chats archive 334 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/archive\nПолная справка: `pachca api PUT /chats/{id}/archive --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/chats/{id}/archive","description":"Архивация чата\n\nМетод для отправки чата в архив.\n\nДля отправки чата в архив вам необходимо знать `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:archive","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Архивация чата\n\n**Метод**: `PUT`\n\n**Путь**: `/chats/{id}/archive`\n\n> **Скоуп:** `chats:archive`\n\nМетод для отправки чата в архив.\n\nДля отправки чата в архив вам необходимо знать `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/chats/334/archive\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/chats/{id}/group_tags","summary":"Добавление тегов","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members add-group-tags","docLink":"https://dev.pachca.com/api/members/add-group-tags","describe":"# POST /chats/{id}/group_tags — Добавление тегов\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Тело запроса\n\n- `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, которые станут участниками\n\n## Эквивалентная команда\n\n```bash\npachca members add-group-tags 334 \\\n --group-tag-ids=86,18 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/add-group-tags\nПолная справка: `pachca api POST /chats/{id}/group_tags --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/chats/{id}/group_tags","description":"Добавление тегов\n\nМетод для добавления тегов в состав участников беседы или канала.\n\nПосле добавления тега все его участники автоматически становятся участниками чата. Состав участников тега и чата синхронизируется автоматически: при добавлении нового участника в тег он сразу появляется в чате, при удалении из тега — удаляется из чата.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на добавление тегов в чат","required":["group_tag_ids"],"properties":{"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, которые станут участниками","example":[86,18],"items":{"type":"integer","format":"int32"}}},"$ref":"#/components/schemas/AddTagsRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Добавление тегов\n\n**Метод**: `POST`\n\n**Путь**: `/chats/{id}/group_tags`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для добавления тегов в состав участников беседы или канала.\n\nПосле добавления тега все его участники автоматически становятся участниками чата. Состав участников тега и чата синхронизируется автоматически: при добавлении нового участника в тег он сразу появляется в чате, при удалении из тега — удаляется из чата.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, которые станут участниками. Пример: `[86,18]`\n\n### Пример\n\n```json\n{\n \"group_tag_ids\": [\n 86,\n 18\n ]\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/334/group_tags\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"group_tag_ids\": [\n 86,\n 18\n ]\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/chats/{id}/group_tags/{tag_id}","summary":"Исключение тега","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members remove-group-tag","docLink":"https://dev.pachca.com/api/members/remove-group-tag","describe":"# DELETE /chats/{id}/group_tags/{tag_id} — Исключение тега\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n- `tag_id` — путь (обязательный): Идентификатор тега\n\n## Эквивалентная команда\n\n```bash\npachca members remove-group-tag 334 86 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/remove-group-tag\nПолная справка: `pachca api DELETE /chats/{id}/group_tags/{tag_id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/chats/{id}/group_tags/{tag_id}","description":"Исключение тега\n\nМетод для исключения тега из состава участников беседы или канала.\n\nДля исключения тега вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334},{"name":"tag_id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":86},"example":86}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Исключение тега\n\n**Метод**: `DELETE`\n\n**Путь**: `/chats/{id}/group_tags/{tag_id}`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для исключения тега из состава участников беседы или канала.\n\nДля исключения тега вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n- `tag_id: integer, int32` (required) — Идентификатор тега\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/chats/334/group_tags/86\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/chats/{id}/leave","summary":"Выход из беседы или канала","scope":"chats:leave","plan":null,"auth":true,"paginated":false,"command":"pachca members leave","docLink":"https://dev.pachca.com/api/members/leave","describe":"# DELETE /chats/{id}/leave — Выход из беседы или канала\n\n> **Скоуп:** `chats:leave`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Эквивалентная команда\n\n```bash\npachca members leave 334 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/leave\nПолная справка: `pachca api DELETE /chats/{id}/leave --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/chats/{id}/leave","description":"Выход из беседы или канала\n\nМетод для самостоятельного выхода из беседы или канала.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:leave","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Выход из беседы или канала\n\n**Метод**: `DELETE`\n\n**Путь**: `/chats/{id}/leave`\n\n> **Скоуп:** `chats:leave`\n\nМетод для самостоятельного выхода из беседы или канала.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/chats/334/leave\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/chats/{id}/members","summary":"Список участников чата","scope":"chat_members:read","plan":null,"auth":true,"paginated":true,"command":"pachca members list","docLink":"https://dev.pachca.com/api/members/list","describe":"# GET /chats/{id}/members — Список участников чата\n\n> **Скоуп:** `chat_members:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n- `role` — query: Роль в чате\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca members list 334 \\\n --role=all \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/list\nПолная справка: `pachca api GET /chats/{id}/members --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/chats/{id}/members","description":"Список участников чата\n\nМетод для получения актуального списка участников чата.\n\nВладелец пространства может получить состав участников любого чата пространства. Администраторы и боты могут получить список участников только тех чатов, в которых состоят (или которые являются открытыми).","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334},{"name":"role","in":"query","description":"Роль в чате","required":false,"schema":{"default":"all","allOf":[{"type":"string","description":"Роль участника чата (с фильтром все)","enum":["all","owner","admin","editor","member"],"x-enum-descriptions":{"all":"Любая роль","owner":"Создатель","admin":"Админ","editor":"Редактор","member":"Участник/подписчик"},"$ref":"#/components/schemas/ChatMemberRoleFilter"}]},"example":"all","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список участников чата\n\n**Метод**: `GET`\n\n**Путь**: `/chats/{id}/members`\n\n> **Скоуп:** `chat_members:read`\n\nМетод для получения актуального списка участников чата.\n\nВладелец пространства может получить состав участников любого чата пространства. Администраторы и боты могут получить список участников только тех чатов, в которых состоят (или которые являются открытыми).\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n### Query параметры\n\n- `role: string` (default: all) — Роль в чате\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/chats/334/members?role=all&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/chats/{id}/members","summary":"Добавление пользователей","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members add","docLink":"https://dev.pachca.com/api/members/add","describe":"# POST /chats/{id}/members — Добавление пользователей\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата (беседа, канал или чат треда)\n\n## Тело запроса\n\n- `member_ids: array of integer` (required) — Массив идентификаторов пользователей, которые станут участниками\n- `silent: boolean` — Не создавать в чате системное сообщение о добавлении участника\n\n## Эквивалентная команда\n\n```bash\npachca members add 334 \\\n --member-ids=186,187 \\\n --silent \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/add\nПолная справка: `pachca api POST /chats/{id}/members --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/chats/{id}/members","description":"Добавление пользователей\n\nМетод для добавления пользователей в состав участников беседы, канала или треда.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата (беседа, канал или чат треда)","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на добавление участников в чат","required":["member_ids"],"properties":{"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, которые станут участниками","example":[186,187],"items":{"type":"integer","format":"int32"}},"silent":{"type":"boolean","description":"Не создавать в чате системное сообщение о добавлении участника","example":true}},"$ref":"#/components/schemas/AddMembersRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Добавление пользователей\n\n**Метод**: `POST`\n\n**Путь**: `/chats/{id}/members`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для добавления пользователей в состав участников беседы, канала или треда.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата (беседа, канал или чат треда)\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `member_ids: array of integer` (required) — Массив идентификаторов пользователей, которые станут участниками. Пример: `[186,187]`\n- `silent: boolean` — Не создавать в чате системное сообщение о добавлении участника. Пример: `true`\n\n### Пример\n\n```json\n{\n \"member_ids\": [\n 186,\n 187\n ],\n \"silent\": true\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/chats/334/members\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"member_ids\": [\n 186,\n 187\n ],\n \"silent\": true\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/chats/{id}/members/{user_id}","summary":"Исключение пользователя","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members remove","docLink":"https://dev.pachca.com/api/members/remove","describe":"# DELETE /chats/{id}/members/{user_id} — Исключение пользователя\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca members remove 334 186 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/remove\nПолная справка: `pachca api DELETE /chats/{id}/members/{user_id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/chats/{id}/members/{user_id}","description":"Исключение пользователя\n\nМетод для исключения пользователя из состава участников беседы или канала.\n\nЕсли пользователь является владельцем чата, то исключить его нельзя. Он может только самостоятельно выйти из чата, воспользовавшись методом [Выход из беседы или канала](DELETE /chats/{id}/leave).","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334},{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":186},"example":186}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Исключение пользователя\n\n**Метод**: `DELETE`\n\n**Путь**: `/chats/{id}/members/{user_id}`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для исключения пользователя из состава участников беседы или канала.\n\nЕсли пользователь является владельцем чата, то исключить его нельзя. Он может только самостоятельно выйти из чата, воспользовавшись методом [Выход из беседы или канала](DELETE /chats/{id}/leave).\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/chats/334/members/186\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/chats/{id}/members/{user_id}","summary":"Редактирование роли","scope":"chat_members:write","plan":null,"auth":true,"paginated":false,"command":"pachca members update","docLink":"https://dev.pachca.com/api/members/update","describe":"# PUT /chats/{id}/members/{user_id} — Редактирование роли\n\n> **Скоуп:** `chat_members:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Тело запроса\n\n- `role: string` (required) — Роль\n Значения: `admin` — Админ, `editor` — Редактор (доступно только для каналов), `member` — Участник или подписчик\n\n## Эквивалентная команда\n\n```bash\npachca members update 334 186 \\\n --role=admin \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/members/update\nПолная справка: `pachca api PUT /chats/{id}/members/{user_id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/chats/{id}/members/{user_id}","description":"Редактирование роли\n\nМетод для редактирования роли пользователя или бота в беседе или канале.\n\nДля редактирования роли в беседе или канале вам необходимо знать `id` чата и пользователя (или бота) и указать их в `URL` запроса. Все редактируемые параметры роли указываются в теле запроса.\n\nВладельцу чата роль изменить нельзя. Он всегда имеет права Админа в чате.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334},{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":186},"example":186}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на изменение роли участника","required":["role"],"properties":{"role":{"description":"Роль","example":"admin","allOf":[{"type":"string","description":"Роль участника чата","enum":["admin","editor","member"],"x-enum-descriptions":{"admin":"Админ","editor":"Редактор (доступно только для каналов)","member":"Участник или подписчик"},"$ref":"#/components/schemas/ChatMemberRole"}]}},"$ref":"#/components/schemas/UpdateMemberRoleRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chat_members:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Редактирование роли\n\n**Метод**: `PUT`\n\n**Путь**: `/chats/{id}/members/{user_id}`\n\n> **Скоуп:** `chat_members:write`\n\nМетод для редактирования роли пользователя или бота в беседе или канале.\n\nДля редактирования роли в беседе или канале вам необходимо знать `id` чата и пользователя (или бота) и указать их в `URL` запроса. Все редактируемые параметры роли указываются в теле запроса.\n\nВладельцу чата роль изменить нельзя. Он всегда имеет права Админа в чате.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `role: string` (required) — Роль\n Значения: `admin` — Админ, `editor` — Редактор (доступно только для каналов), `member` — Участник или подписчик\n\n### Пример\n\n```json\n{\n \"role\": \"admin\"\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/chats/334/members/186\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"role\": \"admin\"\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/chats/{id}/unarchive","summary":"Разархивация чата","scope":"chats:archive","plan":null,"auth":true,"paginated":false,"command":"pachca chats unarchive","docLink":"https://dev.pachca.com/api/chats/unarchive","describe":"# PUT /chats/{id}/unarchive — Разархивация чата\n\n> **Скоуп:** `chats:archive`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор чата\n\n## Эквивалентная команда\n\n```bash\npachca chats unarchive 334 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/chats/unarchive\nПолная справка: `pachca api PUT /chats/{id}/unarchive --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/chats/{id}/unarchive","description":"Разархивация чата\n\nМетод для возвращения чата из архива.\n\nДля разархивации чата вам необходимо знать её `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор чата","required":true,"schema":{"type":"integer","format":"int32","example":334},"example":334}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"chats:archive","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Разархивация чата\n\n**Метод**: `PUT`\n\n**Путь**: `/chats/{id}/unarchive`\n\n> **Скоуп:** `chats:archive`\n\nМетод для возвращения чата из архива.\n\nДля разархивации чата вам необходимо знать её `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор чата\n\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/chats/334/unarchive\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/custom_properties","summary":"Список дополнительных полей","scope":"custom_properties:read","plan":null,"auth":true,"paginated":false,"command":"pachca custom-properties list","docLink":"https://dev.pachca.com/api/custom-properties/list","describe":"# GET /custom_properties — Список дополнительных полей\n\n> **Скоуп:** `custom_properties:read`\n\n## Параметры\n\n- `entity_type` — query (обязательный): Тип сущности\n\n## Эквивалентная команда\n\n```bash\npachca custom-properties list \\\n --entity-type=User \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/custom-properties/list\nПолная справка: `pachca api GET /custom_properties --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/custom_properties","description":"Список дополнительных полей\n\nНа данный момент работа с дополнительными полями типа \"Файл\" недоступна.\n\nМетод для получения актуального списка дополнительных полей участников и напоминаний в вашей компании.\n\nПо умолчанию в вашей компании все сущности имеют только базовые поля. Но администратор вашей компании может добавлять дополнительные поля, редактировать их и удалять. Если при создании сотрудников (или напоминаний) вы используете дополнительные поля, которые не являются актуальными (удалены или не существуют) - вы получите ошибку.","parameters":[{"name":"entity_type","in":"query","description":"Тип сущности","required":true,"schema":{"type":"string","description":"Тип сущности для поиска","enum":["User","Task"],"x-enum-descriptions":{"User":"Пользователь","Task":"Задача"},"example":"User","$ref":"#/components/schemas/SearchEntityType"},"example":"User","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]}},"$ref":"#/components/schemas/CustomPropertyDefinition"}}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"custom_properties:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Список дополнительных полей\n\n**Метод**: `GET`\n\n**Путь**: `/custom_properties`\n\n> **Скоуп:** `custom_properties:read`\n\nНа данный момент работа с дополнительными полями типа \"Файл\" недоступна.\n\nМетод для получения актуального списка дополнительных полей участников и напоминаний в вашей компании.\n\nПо умолчанию в вашей компании все сущности имеют только базовые поля. Но администратор вашей компании может добавлять дополнительные поля, редактировать их и удалять. Если при создании сотрудников (или напоминаний) вы используете дополнительные поля, которые не являются актуальными (удалены или не существуют) - вы получите ошибку.\n\n## Параметры\n\n### Query параметры\n\n- `entity_type: string` (required) — Тип сущности\n Значения: `User`, `Task`\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/custom_properties?entity_type=User\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\"\n }\n ]\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/direct_url","summary":"Загрузка файла","scope":null,"plan":null,"auth":false,"paginated":false,"command":"pachca files direct-url","docLink":"https://dev.pachca.com/api/files/direct-url","describe":"# POST /direct_url — Загрузка файла\n\n> Авторизация не требуется\n\n## Тело запроса\n\n- `Content-Disposition: string` (required) — Параметр Content-Disposition, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `acl: string` (required) — Параметр acl, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `policy: string` (required) — Параметр policy, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-credential: string` (required) — Параметр x-amz-credential, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-algorithm: string` (required) — Параметр x-amz-algorithm, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-date: string` (required) — Параметр x-amz-date, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-signature: string` (required) — Параметр x-amz-signature, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `key: string` (required) — Параметр key, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `file: binary` (required) — Файл для загрузки\n\n## Эквивалентная команда\n\n```bash\n# URL получается из ответа POST /uploads (поле direct_url)\npachca files direct-url \\\n --direct-url=$DIRECT_URL \\\n --content-disposition=your_api_token_here \\\n --acl=your_api_token_here \\\n --policy=your_api_token_here \\\n --x-amz-credential=your_api_token_here \\\n --x-amz-algorithm=your_api_token_here \\\n --x-amz-date=your_api_token_here \\\n --x-amz-signature=your_api_token_here \\\n --key=your_api_token_here \\\n --file=./file.jpg \\\n --json\n```\n\nДокументация: https://dev.pachca.com/api/files/direct-url\nПолная справка: `pachca api POST /direct_url --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/direct_url","description":"Загрузка файла\n\nЗагрузка файла на сервер с форматом `multipart/form-data`. Параметры для загрузки получаются через метод [Получение подписи, ключа и других параметров](POST /uploads).","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["Content-Disposition","acl","policy","x-amz-credential","x-amz-algorithm","x-amz-date","x-amz-signature","key","file"],"properties":{"Content-Disposition":{"type":"string","description":"Параметр Content-Disposition, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"acl":{"type":"string","description":"Параметр acl, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"policy":{"type":"string","description":"Параметр policy, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"x-amz-credential":{"type":"string","description":"Параметр x-amz-credential, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"x-amz-algorithm":{"type":"string","description":"Параметр x-amz-algorithm, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"x-amz-date":{"type":"string","description":"Параметр x-amz-date, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"x-amz-signature":{"type":"string","description":"Параметр x-amz-signature, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"key":{"type":"string","description":"Параметр key, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)"},"file":{"type":"string","format":"binary","description":"Файл для загрузки"}},"$ref":"#/components/schemas/FileUploadRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "}},"requirements":{"auth":false},"paginated":false},"docs":"# Загрузка файла\n\n**Метод**: `POST`\n\n**Путь**: `/direct_url`\n\n> Авторизация не требуется\n\nЗагрузка файла на сервер с форматом `multipart/form-data`. Параметры для загрузки получаются через метод [Получение подписи, ключа и других параметров](POST /uploads).\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `multipart/form-data`\n\n### Схема\n\n- `Content-Disposition: string` (required) — Параметр Content-Disposition, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `acl: string` (required) — Параметр acl, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `policy: string` (required) — Параметр policy, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-credential: string` (required) — Параметр x-amz-credential, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-algorithm: string` (required) — Параметр x-amz-algorithm, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-date: string` (required) — Параметр x-amz-date, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `x-amz-signature: string` (required) — Параметр x-amz-signature, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `key: string` (required) — Параметр key, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)\n- `file: binary` (required) — Файл для загрузки\n\n\n## Пример запроса\n\n```bash\n# URL получается из ответа POST /uploads (поле direct_url)\ncurl \"$DIRECT_URL\" \\\n -F \"Content-Disposition=attachment\" \\\n -F \"acl=private\" \\\n -F \"policy=eyJloNBpcmF0aW9u...\" \\\n -F \"x-amz-credential=286471_server/20211122/kz-6x/s3/aws4_request\" \\\n -F \"x-amz-algorithm=AWS4-HMAC-SHA256\" \\\n -F \"x-amz-date=20211122T065734Z\" \\\n -F \"x-amz-signature=87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475\" \\\n -F \"key=attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/$filename\" \\\n -F \"file=@filename.png\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n"},{"method":"POST","path":"/group_tags","summary":"Новый тег","scope":"group_tags:write","plan":null,"auth":true,"paginated":false,"command":"pachca group-tags create","docLink":"https://dev.pachca.com/api/group-tags/create","describe":"# POST /group_tags — Новый тег\n\n> **Скоуп:** `group_tags:write`\n\n## Тело запроса\n\n- `group_tag: object` (required)\n - `name: string` (required) — Название тега\n\n## Эквивалентная команда\n\n```bash\npachca group-tags create \\\n --name=\"Новое название тега\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/create\nПолная справка: `pachca api POST /group_tags --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/group_tags","description":"Новый тег\n\nМетод для создания нового тега.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание или редактирование тега","required":["group_tag"],"properties":{"group_tag":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Название тега","example":"Новое название тега"}}}},"$ref":"#/components/schemas/GroupTagRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тег","required":["id","name","users_count"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор тега","example":9111},"name":{"type":"string","description":"Название тега","example":"Design"},"users_count":{"type":"integer","format":"int32","description":"Количество сотрудников, которые имеют этот тег","example":6}},"$ref":"#/components/schemas/GroupTag"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Новый тег\n\n**Метод**: `POST`\n\n**Путь**: `/group_tags`\n\n> **Скоуп:** `group_tags:write`\n\nМетод для создания нового тега.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `group_tag: object` (required)\n - `name: string` (required) — Название тега. Пример: `\"Новое название тега\"`\n\n### Пример\n\n```json\n{\n \"group_tag\": {\n \"name\": \"Новое название тега\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/group_tags\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"group_tag\": {\n \"name\": \"Новое название тега\"\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тег\n - `id: integer, int32` (required) — Идентификатор тега. Пример: `9111`\n - `name: string` (required) — Название тега. Пример: `\"Design\"`\n - `users_count: integer, int32` (required) — Количество сотрудников, которые имеют этот тег. Пример: `6`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 9111,\n \"name\": \"Design\",\n \"users_count\": 6\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/group_tags","summary":"Список тегов сотрудников","scope":"group_tags:read","plan":null,"auth":true,"paginated":true,"command":"pachca group-tags list","docLink":"https://dev.pachca.com/api/group-tags/list","describe":"# GET /group_tags — Список тегов сотрудников\n\n> **Скоуп:** `group_tags:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `names` — query: Массив названий тегов, по которым вы хотите отфильтровать список\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca group-tags list \\\n --names=Design,Product \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/list\nПолная справка: `pachca api GET /group_tags --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/group_tags","description":"Список тегов сотрудников\n\nМетод для получения актуального списка тегов сотрудников. Названия тегов являются уникальными в компании.","parameters":[{"name":"names","in":"query","description":"Массив названий тегов, по которым вы хотите отфильтровать список","required":false,"schema":{"type":"array","description":"Массив названий тегов","example":["Design","Product"],"items":{"type":"string"},"$ref":"#/components/schemas/TagNamesFilter"},"example":["Design","Product"]},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Тег","required":["id","name","users_count"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор тега","example":9111},"name":{"type":"string","description":"Название тега","example":"Design"},"users_count":{"type":"integer","format":"int32","description":"Количество сотрудников, которые имеют этот тег","example":6}},"$ref":"#/components/schemas/GroupTag"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:read","scopeRoles":["owner","admin"]},"paginated":true},"docs":"# Список тегов сотрудников\n\n**Метод**: `GET`\n\n**Путь**: `/group_tags`\n\n> **Скоуп:** `group_tags:read`\n\nМетод для получения актуального списка тегов сотрудников. Названия тегов являются уникальными в компании.\n\n## Параметры\n\n### Query параметры\n\n- `names: array` — Массив названий тегов, по которым вы хотите отфильтровать список\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/group_tags?names[]=Design&names[]=Product&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор тега. Пример: `9111`\n - `name: string` (required) — Название тега. Пример: `\"Design\"`\n - `users_count: integer, int32` (required) — Количество сотрудников, которые имеют этот тег. Пример: `6`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 9111,\n \"name\": \"Design\",\n \"users_count\": 6\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/group_tags/{id}","summary":"Информация о теге","scope":"group_tags:read","plan":null,"auth":true,"paginated":false,"command":"pachca group-tags get","docLink":"https://dev.pachca.com/api/group-tags/get","describe":"# GET /group_tags/{id} — Информация о теге\n\n> **Скоуп:** `group_tags:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор тега\n\n## Эквивалентная команда\n\n```bash\npachca group-tags get 9111 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/get\nПолная справка: `pachca api GET /group_tags/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/group_tags/{id}","description":"Информация о теге\n\nМетод для получения информации о теге. Названия тегов являются уникальными в компании.\n\nДля получения тега вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":9111},"example":9111}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тег","required":["id","name","users_count"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор тега","example":9111},"name":{"type":"string","description":"Название тега","example":"Design"},"users_count":{"type":"integer","format":"int32","description":"Количество сотрудников, которые имеют этот тег","example":6}},"$ref":"#/components/schemas/GroupTag"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:read","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Информация о теге\n\n**Метод**: `GET`\n\n**Путь**: `/group_tags/{id}`\n\n> **Скоуп:** `group_tags:read`\n\nМетод для получения информации о теге. Названия тегов являются уникальными в компании.\n\nДля получения тега вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор тега\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/group_tags/9111\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тег\n - `id: integer, int32` (required) — Идентификатор тега. Пример: `9111`\n - `name: string` (required) — Название тега. Пример: `\"Design\"`\n - `users_count: integer, int32` (required) — Количество сотрудников, которые имеют этот тег. Пример: `6`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 9111,\n \"name\": \"Design\",\n \"users_count\": 6\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/group_tags/{id}","summary":"Редактирование тега","scope":"group_tags:write","plan":null,"auth":true,"paginated":false,"command":"pachca group-tags update","docLink":"https://dev.pachca.com/api/group-tags/update","describe":"# PUT /group_tags/{id} — Редактирование тега\n\n> **Скоуп:** `group_tags:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор тега\n\n## Тело запроса\n\n- `group_tag: object` (required)\n - `name: string` (required) — Название тега\n\n## Эквивалентная команда\n\n```bash\npachca group-tags update 9111 \\\n --name=\"Новое название тега\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/update\nПолная справка: `pachca api PUT /group_tags/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/group_tags/{id}","description":"Редактирование тега\n\nМетод для редактирования тега.\n\nДля редактирования тега вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры тега указываются в теле запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":9111},"example":9111}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание или редактирование тега","required":["group_tag"],"properties":{"group_tag":{"type":"object","required":["name"],"properties":{"name":{"type":"string","description":"Название тега","example":"Новое название тега"}}}},"$ref":"#/components/schemas/GroupTagRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тег","required":["id","name","users_count"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор тега","example":9111},"name":{"type":"string","description":"Название тега","example":"Design"},"users_count":{"type":"integer","format":"int32","description":"Количество сотрудников, которые имеют этот тег","example":6}},"$ref":"#/components/schemas/GroupTag"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Редактирование тега\n\n**Метод**: `PUT`\n\n**Путь**: `/group_tags/{id}`\n\n> **Скоуп:** `group_tags:write`\n\nМетод для редактирования тега.\n\nДля редактирования тега вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры тега указываются в теле запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор тега\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `group_tag: object` (required)\n - `name: string` (required) — Название тега. Пример: `\"Новое название тега\"`\n\n### Пример\n\n```json\n{\n \"group_tag\": {\n \"name\": \"Новое название тега\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/group_tags/9111\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"group_tag\": {\n \"name\": \"Новое название тега\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тег\n - `id: integer, int32` (required) — Идентификатор тега. Пример: `9111`\n - `name: string` (required) — Название тега. Пример: `\"Design\"`\n - `users_count: integer, int32` (required) — Количество сотрудников, которые имеют этот тег. Пример: `6`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 9111,\n \"name\": \"Design\",\n \"users_count\": 6\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/group_tags/{id}","summary":"Удаление тега","scope":"group_tags:write","plan":null,"auth":true,"paginated":false,"command":"pachca group-tags delete","docLink":"https://dev.pachca.com/api/group-tags/delete","describe":"# DELETE /group_tags/{id} — Удаление тега\n\n> **Скоуп:** `group_tags:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор тега\n\n## Эквивалентная команда\n\n```bash\npachca group-tags delete 9111 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/delete\nПолная справка: `pachca api DELETE /group_tags/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/group_tags/{id}","description":"Удаление тега\n\nМетод для удаления тега.\n\nДля удаления тега вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":9111},"example":9111}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Удаление тега\n\n**Метод**: `DELETE`\n\n**Путь**: `/group_tags/{id}`\n\n> **Скоуп:** `group_tags:write`\n\nМетод для удаления тега.\n\nДля удаления тега вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор тега\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/group_tags/9111\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/group_tags/{id}/users","summary":"Список сотрудников тега","scope":"group_tags:read","plan":null,"auth":true,"paginated":true,"command":"pachca group-tags list-users","docLink":"https://dev.pachca.com/api/group-tags/list-users","describe":"# GET /group_tags/{id}/users — Список сотрудников тега\n\n> **Скоуп:** `group_tags:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор тега\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca group-tags list-users 9111 \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/group-tags/list-users\nПолная справка: `pachca api GET /group_tags/{id}/users --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/group_tags/{id}/users","description":"Список сотрудников тега\n\nМетод для получения актуального списка сотрудников тега.","parameters":[{"name":"id","in":"path","description":"Идентификатор тега","required":true,"schema":{"type":"integer","format":"int32","example":9111},"example":9111},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"group_tags:read","scopeRoles":["owner","admin"]},"paginated":true},"docs":"# Список сотрудников тега\n\n**Метод**: `GET`\n\n**Путь**: `/group_tags/{id}/users`\n\n> **Скоуп:** `group_tags:read`\n\nМетод для получения актуального списка сотрудников тега.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор тега\n\n### Query параметры\n\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/group_tags/9111/users?limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages","summary":"Новое сообщение","scope":"messages:create","plan":null,"auth":true,"paginated":false,"command":"pachca messages create","docLink":"https://dev.pachca.com/api/messages/create","describe":"# POST /messages — Новое сообщение\n\n> **Скоуп:** `messages:create`\n\n## Тело запроса\n\n- `message: object` (required) — Собранный объект параметров создаваемого сообщения\n - `entity_type: string` — Тип сущности\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности\n - `content: string` (required) — Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).\n - `files: array of object` — Прикрепляемые файлы\n - `key: string` (required) — Путь к файлу, полученный в результате [загрузки файла](POST /direct_url)\n - `name: string` (required) — Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением)\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `size: integer, int32` (required) — Размер файла в байтах, отображаемый пользователю\n - `width: integer, int32` — Ширина изображения в px (используется в случае, если file_type указан как image)\n - `height: integer, int32` — Высота изображения в px (используется в случае, если file_type указан как image)\n - `duration_ms: integer, int32` (min: 1) — Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.\n - `waveform: string` (max length: 256) — Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.\n - `buttons: array of array` — Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке.\n - `parent_message_id: integer, int32` — Идентификатор сообщения. Указывается в случае, если вы отправляете ответ на другое сообщение.\n - `display_avatar_url: string` (max length: 255) — Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.\n - `display_name: string` (max length: 255) — Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.\n - `skip_invite_mentions: boolean` (default: false) — Пропуск добавления упоминаемых пользователей в тред. Работает только при отправке сообщения в тред.\n- `link_preview: boolean` (default: false) — Отображение предпросмотра первой найденной ссылки в тексте сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages create \\\n --entity-id=334 \\\n --content=\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\" \\\n --files='[{\"key\":\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\"name\":\"logo.png\",\"file_type\":\"image\",\"size\":12345,\"width\":800,\"height\":600,\"duration_ms\":5400,\"waveform\":\"4,8,12,20,16,10,6,3\"}]' \\\n --buttons='[[{\"text\":\"Подробнее\",\"url\":\"https://example.com/details\"},{\"text\":\"Отлично!\",\"data\":\"awesome\"}]]' \\\n --parent-message-id=194270 \\\n --display-avatar-url=https://example.com/avatar.png \\\n --display-name=\"Бот Поддержки\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/create\nПолная справка: `pachca api POST /messages --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages","description":"Новое сообщение\n\nМетод для отправки сообщения в беседу или канал, личного сообщения пользователю или комментария в тред.\n\nПри использовании `entity_type: \"discussion\"` (или просто без указания `entity_type`) допускается отправка любого `chat_id` в поле `entity_id`. То есть, сообщение можно отправить зная только идентификатор чата. При этом, вы имеете возможность отправить сообщение в тред по его идентификатору или личное сообщение по идентификатору пользователя.\n\nДля отправки личного сообщения пользователю создавать чат не требуется. Достаточно указать `entity_type: \"user\"` и идентификатор пользователя. Чат будет создан автоматически, если между вами ещё не было переписки. Между двумя пользователями может быть только один личный чат.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание сообщения","required":["message"],"properties":{"message":{"type":"object","description":"Собранный объект параметров создаваемого сообщения","required":["entity_id","content"],"properties":{"entity_type":{"description":"Тип сущности","default":"discussion","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности","example":334},"content":{"type":"string","description":"Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"files":{"type":"array","description":"Прикрепляемые файлы","items":{"type":"object","required":["key","name","file_type","size"],"properties":{"key":{"type":"string","description":"Путь к файлу, полученный в результате [загрузки файла](POST /direct_url)","example":"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png"},"name":{"type":"string","description":"Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением)","example":"logo.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"size":{"type":"integer","format":"int32","description":"Размер файла в байтах, отображаемый пользователю","example":12345},"width":{"type":"integer","format":"int32","description":"Ширина изображения в px (используется в случае, если file_type указан как image)","example":800},"height":{"type":"integer","format":"int32","description":"Высота изображения в px (используется в случае, если file_type указан как image)","example":600},"duration_ms":{"type":"integer","format":"int32","description":"Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.","example":5400,"minimum":1},"waveform":{"type":"string","description":"Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.","example":"4,8,12,20,16,10,6,3","maxLength":256}}}},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке.","example":[[{"text":"Подробнее","url":"https://example.com/details"},{"text":"Отлично!","data":"awesome"}]],"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения. Указывается в случае, если вы отправляете ответ на другое сообщение.","example":194270},"display_avatar_url":{"type":"string","description":"Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","example":"https://example.com/avatar.png","maxLength":255},"display_name":{"type":"string","description":"Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","example":"Бот Поддержки","maxLength":255},"skip_invite_mentions":{"type":"boolean","description":"Пропуск добавления упоминаемых пользователей в тред. Работает только при отправке сообщения в тред.","default":false,"example":false}}},"link_preview":{"type":"boolean","description":"Отображение предпросмотра первой найденной ссылки в тексте сообщения","default":false,"example":false}},"$ref":"#/components/schemas/MessageCreateRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:create","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новое сообщение\n\n**Метод**: `POST`\n\n**Путь**: `/messages`\n\n> **Скоуп:** `messages:create`\n\nМетод для отправки сообщения в беседу или канал, личного сообщения пользователю или комментария в тред.\n\nПри использовании `entity_type: \"discussion\"` (или просто без указания `entity_type`) допускается отправка любого `chat_id` в поле `entity_id`. То есть, сообщение можно отправить зная только идентификатор чата. При этом, вы имеете возможность отправить сообщение в тред по его идентификатору или личное сообщение по идентификатору пользователя.\n\nДля отправки личного сообщения пользователю создавать чат не требуется. Достаточно указать `entity_type: \"user\"` и идентификатор пользователя. Чат будет создан автоматически, если между вами ещё не было переписки. Между двумя пользователями может быть только один личный чат.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `message: object` (required) — Собранный объект параметров создаваемого сообщения\n - `entity_type: string` — Тип сущности\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности. Пример: `334`\n - `content: string` (required) — Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `files: array of object` — Прикрепляемые файлы\n - `key: string` (required) — Путь к файлу, полученный в результате [загрузки файла](POST /direct_url). Пример: `\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\"`\n - `name: string` (required) — Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением). Пример: `\"logo.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `size: integer, int32` (required) — Размер файла в байтах, отображаемый пользователю. Пример: `12345`\n - `width: integer, int32` — Ширина изображения в px (используется в случае, если file_type указан как image). Пример: `800`\n - `height: integer, int32` — Высота изображения в px (используется в случае, если file_type указан как image). Пример: `600`\n - `duration_ms: integer, int32` (min: 1) — Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.. Пример: `5400`\n - `waveform: string` (max length: 256) — Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `buttons: array of array` — Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке.. Пример: `[[{\"text\":\"Подробнее\",\"url\":\"https://example.com/details\"},{\"text\":\"Отлично!\",\"data\":\"awesome\"}]]`\n - `parent_message_id: integer, int32` — Идентификатор сообщения. Указывается в случае, если вы отправляете ответ на другое сообщение.. Пример: `194270`\n - `display_avatar_url: string` (max length: 255) — Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.. Пример: `\"https://example.com/avatar.png\"`\n - `display_name: string` (max length: 255) — Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.. Пример: `\"Бот Поддержки\"`\n - `skip_invite_mentions: boolean` (default: false) — Пропуск добавления упоминаемых пользователей в тред. Работает только при отправке сообщения в тред.. Пример: `false`\n- `link_preview: boolean` (default: false) — Отображение предпросмотра первой найденной ссылки в тексте сообщения. Пример: `false`\n\n### Пример\n\n```json\n{\n \"message\": {\n \"entity_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"files\": [\n {\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\n \"name\": \"logo.png\",\n \"file_type\": \"image\",\n \"size\": 12345,\n \"width\": 800,\n \"height\": 600,\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\"\n }\n ],\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\"\n },\n {\n \"text\": \"Отлично!\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"parent_message_id\": 194270,\n \"display_avatar_url\": \"https://example.com/avatar.png\",\n \"display_name\": \"Бот Поддержки\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/messages\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"message\": {\n \"entity_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"files\": [\n {\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\n \"name\": \"logo.png\",\n \"file_type\": \"image\",\n \"size\": 12345,\n \"width\": 800,\n \"height\": 600,\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\"\n }\n ],\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\"\n },\n {\n \"text\": \"Отлично!\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"parent_message_id\": 194270,\n \"display_avatar_url\": \"https://example.com/avatar.png\",\n \"display_name\": \"Бот Поддержки\"\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сообщение\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/messages","summary":"Список сообщений чата","scope":"messages:read","plan":null,"auth":true,"paginated":true,"command":"pachca messages list","docLink":"https://dev.pachca.com/api/messages/list","describe":"# GET /messages — Список сообщений чата\n\n> **Скоуп:** `messages:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `chat_id` — query (обязательный): Идентификатор чата (беседа, канал, диалог или чат треда)\n- `sort` — query: Поле сортировки\n- `order` — query: Направление сортировки\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca messages list \\\n --chat-id=198 \\\n --sort=id \\\n --order=desc \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/list\nПолная справка: `pachca api GET /messages --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/messages","description":"Список сообщений чата\n\nМетод для получения списка сообщений бесед, каналов, тредов и личных сообщений.\n\nДля получения сообщений вам необходимо знать `chat_id` требуемой беседы, канала, треда или диалога, и указать его в `URL` запроса. Сообщения будут возвращены в порядке убывания даты отправки (то есть, сначала будут идти последние сообщения чата). Для получения более ранних сообщений чата доступны параметры `limit` и `cursor`.","parameters":[{"name":"chat_id","in":"query","description":"Идентификатор чата (беседа, канал, диалог или чат треда)","required":true,"schema":{"type":"integer","format":"int32","example":198},"example":198,"explode":false},{"name":"sort","in":"query","description":"Поле сортировки","required":false,"schema":{"default":"id","allOf":[{"type":"string","description":"Поле сортировки сообщений","enum":["id"],"x-enum-descriptions":{"id":"По идентификатору сообщения"},"$ref":"#/components/schemas/MessageSortField"}]},"example":"id","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"default":"desc","allOf":[{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"$ref":"#/components/schemas/SortOrder"}]},"example":"desc","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список сообщений чата\n\n**Метод**: `GET`\n\n**Путь**: `/messages`\n\n> **Скоуп:** `messages:read`\n\nМетод для получения списка сообщений бесед, каналов, тредов и личных сообщений.\n\nДля получения сообщений вам необходимо знать `chat_id` требуемой беседы, канала, треда или диалога, и указать его в `URL` запроса. Сообщения будут возвращены в порядке убывания даты отправки (то есть, сначала будут идти последние сообщения чата). Для получения более ранних сообщений чата доступны параметры `limit` и `cursor`.\n\n## Параметры\n\n### Query параметры\n\n- `chat_id: integer, int32` (required) — Идентификатор чата (беседа, канал, диалог или чат треда)\n- `sort: string` (default: id) — Поле сортировки\n- `order: string` (default: desc) — Направление сортировки\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/messages?chat_id=198&sort=id&order=desc&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": null\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/messages/{id}","summary":"Информация о сообщении","scope":"messages:read","plan":null,"auth":true,"paginated":false,"command":"pachca messages get","docLink":"https://dev.pachca.com/api/messages/get","describe":"# GET /messages/{id} — Информация о сообщении\n\n> **Скоуп:** `messages:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages get 194275 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/get\nПолная справка: `pachca api GET /messages/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/messages/{id}","description":"Информация о сообщении\n\nМетод для получения информации о сообщении.\n\nДля получения сообщения вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о сообщении\n\n**Метод**: `GET`\n\n**Путь**: `/messages/{id}`\n\n> **Скоуп:** `messages:read`\n\nМетод для получения информации о сообщении.\n\nДля получения сообщения вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/messages/194275\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сообщение\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/messages/{id}","summary":"Редактирование сообщения","scope":"messages:update","plan":null,"auth":true,"paginated":false,"command":"pachca messages update","docLink":"https://dev.pachca.com/api/messages/update","describe":"# PUT /messages/{id} — Редактирование сообщения\n\n> **Скоуп:** `messages:update`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Тело запроса\n\n- `message: object` (required) — Собранный объект параметров редактируемого сообщения\n - `content: string` — Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).\n - `files: array of object` — Прикрепляемые файлы\n - `key: string` (required) — Путь к файлу, полученный в результате [загрузки файла](POST /direct_url)\n - `name: string` (required) — Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением)\n - `file_type: string` — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `size: integer, int32` — Размер файла в байтах, отображаемый пользователю\n - `width: integer, int32` — Ширина изображения в px (используется в случае, если file_type указан как image)\n - `height: integer, int32` — Высота изображения в px (используется в случае, если file_type указан как image)\n - `duration_ms: integer, int32` (min: 1) — Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.\n - `waveform: string` (max length: 256) — Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.\n - `buttons: array of array` — Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке. Для удаления кнопок пришлите пустой массив.\n - `display_avatar_url: string` — Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.\n - `display_name: string` — Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.\n\n## Эквивалентная команда\n\n```bash\npachca messages update 194275 \\\n --content=\"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.\" \\\n --files='[{\"key\":\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\"name\":\"logo.png\",\"file_type\":\"image\",\"size\":12345,\"width\":800,\"height\":600,\"duration_ms\":5400,\"waveform\":\"4,8,12,20,16,10,6,3\"}]' \\\n --buttons='[[{\"text\":\"Подробнее\",\"url\":\"https://example.com/details\"}]]' \\\n --display-avatar-url=https://example.com/avatar.png \\\n --display-name=\"Бот Поддержки\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/update\nПолная справка: `pachca api PUT /messages/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/messages/{id}","description":"Редактирование сообщения\n\nМетод для редактирования сообщения или комментария.\n\nДля редактирования сообщения вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сообщения указываются в теле запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на редактирование сообщения","required":["message"],"properties":{"message":{"type":"object","description":"Собранный объект параметров редактируемого сообщения","properties":{"content":{"type":"string","description":"Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).","example":"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет."},"files":{"type":"array","description":"Прикрепляемые файлы","items":{"type":"object","required":["key","name"],"properties":{"key":{"type":"string","description":"Путь к файлу, полученный в результате [загрузки файла](POST /direct_url)","example":"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png"},"name":{"type":"string","description":"Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением)","example":"logo.png"},"file_type":{"description":"Тип файла","default":"file","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"size":{"type":"integer","format":"int32","description":"Размер файла в байтах, отображаемый пользователю","example":12345},"width":{"type":"integer","format":"int32","description":"Ширина изображения в px (используется в случае, если file_type указан как image)","example":800},"height":{"type":"integer","format":"int32","description":"Высота изображения в px (используется в случае, если file_type указан как image)","example":600},"duration_ms":{"type":"integer","format":"int32","description":"Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.","example":5400,"minimum":1},"waveform":{"type":"string","description":"Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.","example":"4,8,12,20,16,10,6,3","maxLength":256}}}},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке. Для удаления кнопок пришлите пустой массив.","example":[[{"text":"Подробнее","url":"https://example.com/details"}]],"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"display_avatar_url":{"type":"string","description":"Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","example":"https://example.com/avatar.png"},"display_name":{"type":"string","description":"Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.","example":"Бот Поддержки"}}}},"$ref":"#/components/schemas/MessageUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:update","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Редактирование сообщения\n\n**Метод**: `PUT`\n\n**Путь**: `/messages/{id}`\n\n> **Скоуп:** `messages:update`\n\nМетод для редактирования сообщения или комментария.\n\nДля редактирования сообщения вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сообщения указываются в теле запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `message: object` (required) — Собранный объект параметров редактируемого сообщения\n - `content: string` — Текст сообщения. Поддерживает упоминания: `@nickname` или `<@user_id>` (будет автоматически преобразовано в `@nickname`).. Пример: `\"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.\"`\n - `files: array of object` — Прикрепляемые файлы\n - `key: string` (required) — Путь к файлу, полученный в результате [загрузки файла](POST /direct_url). Пример: `\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\"`\n - `name: string` (required) — Название файла, которое вы хотите отображать пользователю (рекомендуется писать вместе с расширением). Пример: `\"logo.png\"`\n - `file_type: string` — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `size: integer, int32` — Размер файла в байтах, отображаемый пользователю. Пример: `12345`\n - `width: integer, int32` — Ширина изображения в px (используется в случае, если file_type указан как image). Пример: `800`\n - `height: integer, int32` — Высота изображения в px (используется в случае, если file_type указан как image). Пример: `600`\n - `duration_ms: integer, int32` (min: 1) — Длительность в миллисекундах. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.. Пример: `5400`\n - `waveform: string` (max length: 256) — Форма волны для визуализации голосового сообщения. Обязательно для голосовых сообщений (`file_type` — `voice`), для других типов не используется.. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `buttons: array of array` — Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке. Для удаления кнопок пришлите пустой массив.. Пример: `[[{\"text\":\"Подробнее\",\"url\":\"https://example.com/details\"}]]`\n - `display_avatar_url: string` — Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.. Пример: `\"https://example.com/avatar.png\"`\n - `display_name: string` — Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.. Пример: `\"Бот Поддержки\"`\n\n### Пример\n\n```json\n{\n \"message\": {\n \"content\": \"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.\",\n \"files\": [\n {\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\n \"name\": \"logo.png\",\n \"file_type\": \"image\",\n \"size\": 12345,\n \"width\": 800,\n \"height\": 600,\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\"\n }\n ],\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\"\n }\n ]\n ],\n \"display_avatar_url\": \"https://example.com/avatar.png\",\n \"display_name\": \"Бот Поддержки\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/messages/194275\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"message\": {\n \"content\": \"Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.\",\n \"files\": [\n {\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/logo.png\",\n \"name\": \"logo.png\",\n \"file_type\": \"image\",\n \"size\": 12345,\n \"width\": 800,\n \"height\": 600,\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\"\n }\n ],\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\"\n }\n ]\n ],\n \"display_avatar_url\": \"https://example.com/avatar.png\",\n \"display_name\": \"Бот Поддержки\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сообщение\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": \"Подробнее\",\n \"url\": \"https://example.com/details\",\n \"data\": \"awesome\"\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/messages/{id}","summary":"Удаление сообщения","scope":"messages:delete","plan":null,"auth":true,"paginated":false,"command":"pachca messages delete","docLink":"https://dev.pachca.com/api/messages/delete","describe":"# DELETE /messages/{id} — Удаление сообщения\n\n> **Скоуп:** `messages:delete`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages delete 194275 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/delete\nПолная справка: `pachca api DELETE /messages/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/messages/{id}","description":"Удаление сообщения\n\nМетод для удаления сообщения.\n\nУдаление сообщения доступно отправителю, админам и редакторам в чате. В личных сообщениях оба пользователя являются редакторами. Ограничений по давности отправки сообщения нет.\n\nДля удаления сообщения вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:delete","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление сообщения\n\n**Метод**: `DELETE`\n\n**Путь**: `/messages/{id}`\n\n> **Скоуп:** `messages:delete`\n\nМетод для удаления сообщения.\n\nУдаление сообщения доступно отправителю, админам и редакторам в чате. В личных сообщениях оба пользователя являются редакторами. Ограничений по давности отправки сообщения нет.\n\nДля удаления сообщения вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/messages/194275\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages/{id}/link_previews","summary":"Unfurl (разворачивание ссылок)","scope":"link_previews:write","plan":null,"auth":true,"paginated":false,"command":"pachca messages unfurl","docLink":"https://dev.pachca.com/api/messages/unfurl","describe":"# POST /messages/{id}/link_previews — Unfurl (разворачивание ссылок)\n\n> **Скоуп:** `link_previews:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Тело запроса\n\n- `link_previews: Record` (required) — `JSON` карта предпросмотров ссылок, где каждый ключ — `URL`, который был получен в исходящем вебхуке о новом сообщении.\n **Структура значений Record:**\n - `title: string` (required) — Заголовок\n - `description: string` (required) — Описание\n - `image_url: string` — Публичная ссылка на изображение (если вы хотите загрузить файл изображения в Пачку, то используйте параметр image)\n - `image: object` — Изображение\n - `key: string` (required) — Путь к изображению, полученный в результате [загрузки файла](POST /direct_url)\n - `name: string` (required) — Название изображения (рекомендуется писать вместе с расширением)\n - `size: integer, int32` — Размер изображения в байтах\n\n## Эквивалентная команда\n\n```bash\npachca messages unfurl 194275 \\\n --link-previews='{\"https://website.com/articles/123\":{\"title\":\"Статья: Отправка файлов\",\"description\":\"Пример отправки файлов на удаленный сервер\",\"image_url\":\"https://website.com/img/landing.png\",\"image\":{\"key\":\"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}\",\"name\":\"files-to-server.jpg\",\"size\":695604}}}' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/unfurl\nПолная справка: `pachca api POST /messages/{id}/link_previews --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages/{id}/link_previews","description":"Unfurl (разворачивание ссылок)\n\nМетод для создания предпросмотров ссылок в сообщениях. Доступен только для Unfurl-ботов.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на разворачивание ссылок","required":["link_previews"],"properties":{"link_previews":{"type":"object","description":"`JSON` карта предпросмотров ссылок, где каждый ключ — `URL`, который был получен в исходящем вебхуке о новом сообщении.","x-record-key-example":"https://website.com/articles/123","additionalProperties":{"type":"object","description":"Данные для предпросмотра ссылки","required":["title","description"],"properties":{"title":{"type":"string","description":"Заголовок","example":"Статья: Отправка файлов"},"description":{"type":"string","description":"Описание","example":"Пример отправки файлов на удаленный сервер"},"image_url":{"type":"string","description":"Публичная ссылка на изображение (если вы хотите загрузить файл изображения в Пачку, то используйте параметр image)","example":"https://website.com/img/landing.png"},"image":{"type":"object","description":"Изображение","required":["key","name"],"properties":{"key":{"type":"string","description":"Путь к изображению, полученный в результате [загрузки файла](POST /direct_url)","example":"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}"},"name":{"type":"string","description":"Название изображения (рекомендуется писать вместе с расширением)","example":"files-to-server.jpg"},"size":{"type":"integer","format":"int32","description":"Размер изображения в байтах","example":695604}}}},"$ref":"#/components/schemas/LinkPreview"}}},"$ref":"#/components/schemas/LinkPreviewsRequest"}}}},"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"link_previews:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Unfurl (разворачивание ссылок)\n\n**Метод**: `POST`\n\n**Путь**: `/messages/{id}/link_previews`\n\n> **Скоуп:** `link_previews:write`\n\nМетод для создания предпросмотров ссылок в сообщениях. Доступен только для Unfurl-ботов.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `link_previews: Record` (required) — `JSON` карта предпросмотров ссылок, где каждый ключ — `URL`, который был получен в исходящем вебхуке о новом сообщении.\n **Структура значений Record:**\n - `title: string` (required) — Заголовок. Пример: `\"Статья: Отправка файлов\"`\n - `description: string` (required) — Описание. Пример: `\"Пример отправки файлов на удаленный сервер\"`\n - `image_url: string` — Публичная ссылка на изображение (если вы хотите загрузить файл изображения в Пачку, то используйте параметр image). Пример: `\"https://website.com/img/landing.png\"`\n - `image: object` — Изображение\n - `key: string` (required) — Путь к изображению, полученный в результате [загрузки файла](POST /direct_url). Пример: `\"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}\"`\n - `name: string` (required) — Название изображения (рекомендуется писать вместе с расширением). Пример: `\"files-to-server.jpg\"`\n - `size: integer, int32` — Размер изображения в байтах. Пример: `695604`\n\n### Пример\n\n```json\n{\n \"link_previews\": {\n \"https://website.com/articles/123\": {\n \"title\": \"Статья: Отправка файлов\",\n \"description\": \"Пример отправки файлов на удаленный сервер\",\n \"image_url\": \"https://website.com/img/landing.png\",\n \"image\": {\n \"key\": \"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}\",\n \"name\": \"files-to-server.jpg\",\n \"size\": 695604\n }\n }\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/messages/194275/link_previews\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"link_previews\": {\n \"https://website.com/articles/123\": {\n \"title\": \"Статья: Отправка файлов\",\n \"description\": \"Пример отправки файлов на удаленный сервер\",\n \"image_url\": \"https://website.com/img/landing.png\",\n \"image\": {\n \"key\": \"attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/${filename}\",\n \"name\": \"files-to-server.jpg\",\n \"size\": 695604\n }\n }\n }\n}'\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages/{id}/pin","summary":"Закрепление сообщения","scope":"pins:write","plan":null,"auth":true,"paginated":false,"command":"pachca messages pin","docLink":"https://dev.pachca.com/api/messages/pin","describe":"# POST /messages/{id}/pin — Закрепление сообщения\n\n> **Скоуп:** `pins:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages pin 194275 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/pin\nПолная справка: `pachca api POST /messages/{id}/pin --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages/{id}/pin","description":"Закрепление сообщения\n\nМетод для закрепления сообщения в чате.\n\nДля закрепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error"}},"requirements":{"scope":"pins:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Закрепление сообщения\n\n**Метод**: `POST`\n\n**Путь**: `/messages/{id}/pin`\n\n> **Скоуп:** `pins:write`\n\nМетод для закрепления сообщения в чате.\n\nДля закрепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/messages/194275/pin\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n"},{"method":"DELETE","path":"/messages/{id}/pin","summary":"Открепление сообщения","scope":"pins:write","plan":null,"auth":true,"paginated":false,"command":"pachca messages unpin","docLink":"https://dev.pachca.com/api/messages/unpin","describe":"# DELETE /messages/{id}/pin — Открепление сообщения\n\n> **Скоуп:** `pins:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca messages unpin 194275 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/messages/unpin\nПолная справка: `pachca api DELETE /messages/{id}/pin --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/messages/{id}/pin","description":"Открепление сообщения\n\nМетод для открепления сообщения из чата.\n\nДля открепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"pins:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Открепление сообщения\n\n**Метод**: `DELETE`\n\n**Путь**: `/messages/{id}/pin`\n\n> **Скоуп:** `pins:write`\n\nМетод для открепления сообщения из чата.\n\nДля открепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/messages/194275/pin\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages/{id}/reactions","summary":"Добавление реакции","scope":"reactions:write","plan":null,"auth":true,"paginated":false,"command":"pachca reactions add","docLink":"https://dev.pachca.com/api/reactions/add","describe":"# POST /messages/{id}/reactions — Добавление реакции\n\n> **Скоуп:** `reactions:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Тело запроса\n\n- `code: string` (required) — Emoji символ реакции\n- `name: string` — Текстовое имя эмодзи (используется для кастомных эмодзи)\n\n## Эквивалентная команда\n\n```bash\npachca reactions add 7231942 \\\n --code=👍 \\\n --name=:+1: \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/reactions/add\nПолная справка: `pachca api POST /messages/{id}/reactions --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages/{id}/reactions","description":"Добавление реакции\n\nМетод для добавления реакции на сообщение.\n\nДля добавления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения отправляются в виде символов `Emoji`. Если пользователь уже ставил реакцию - повторно она установлена не будет. Для удаления реакции надо воспользоваться методом [Удаление реакции](DELETE /messages/{id}/reactions).\n\n**Лимиты реакций:**\n\n- Каждый пользователь может установить не более **20 уникальных** реакций\n- Сообщение может иметь не более **30 уникальных** реакций\n- Общее количество реакций на сообщение не может превышать **1000**","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":7231942},"example":7231942}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на добавление реакции","required":["code"],"properties":{"code":{"type":"string","description":"Emoji символ реакции","example":"👍"},"name":{"type":"string","description":"Текстовое имя эмодзи (используется для кастомных эмодзи)","example":":+1:"}},"$ref":"#/components/schemas/ReactionRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Реакция на сообщение","required":["user_id","created_at","code","name"],"properties":{"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который добавил реакцию","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-01-20T10:30:00.000Z"},"code":{"type":"string","description":"Emoji символ реакции","example":"👍"},"name":{"type":"string","description":"Название emoji реакции","example":":+1::skin-tone-1:","nullable":true}},"$ref":"#/components/schemas/Reaction"}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"reactions:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Добавление реакции\n\n**Метод**: `POST`\n\n**Путь**: `/messages/{id}/reactions`\n\n> **Скоуп:** `reactions:write`\n\nМетод для добавления реакции на сообщение.\n\nДля добавления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения отправляются в виде символов `Emoji`. Если пользователь уже ставил реакцию - повторно она установлена не будет. Для удаления реакции надо воспользоваться методом [Удаление реакции](DELETE /messages/{id}/reactions).\n\n**Лимиты реакций:**\n\n- Каждый пользователь может установить не более **20 уникальных** реакций\n- Сообщение может иметь не более **30 уникальных** реакций\n- Общее количество реакций на сообщение не может превышать **1000**\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `code: string` (required) — Emoji символ реакции. Пример: `\"👍\"`\n- `name: string` — Текстовое имя эмодзи (используется для кастомных эмодзи). Пример: `\":+1:\"`\n\n### Пример\n\n```json\n{\n \"code\": \"👍\",\n \"name\": \":+1:\"\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/messages/7231942/reactions\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"code\": \"👍\",\n \"name\": \":+1:\"\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя, который добавил реакцию. Пример: `12`\n- `created_at: date-time` (required) — Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-01-20T10:30:00.000Z\"`\n- `code: string` (required) — Emoji символ реакции. Пример: `\"👍\"`\n- `name: string` (required) — Название emoji реакции. Пример: `\":+1::skin-tone-1:\"`\n\n**Пример ответа:**\n\n```json\n{\n \"user_id\": 12,\n \"created_at\": \"2024-01-20T10:30:00.000Z\",\n \"code\": \"👍\",\n \"name\": \":+1::skin-tone-1:\"\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/messages/{id}/reactions","summary":"Удаление реакции","scope":"reactions:write","plan":null,"auth":true,"paginated":false,"command":"pachca reactions remove","docLink":"https://dev.pachca.com/api/reactions/remove","describe":"# DELETE /messages/{id}/reactions — Удаление реакции\n\n> **Скоуп:** `reactions:write`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n- `code` — query (обязательный): Emoji символ реакции\n- `name` — query: Текстовое имя эмодзи (используется для кастомных эмодзи)\n\n## Эквивалентная команда\n\n```bash\npachca reactions remove 7231942 \\\n --code=👍 \\\n --name=:+1: \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/reactions/remove\nПолная справка: `pachca api DELETE /messages/{id}/reactions --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/messages/{id}/reactions","description":"Удаление реакции\n\nМетод для удаления реакции на сообщение.\n\nДля удаления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения хранятся в виде символов `Emoji`.\n\nУдалять можно только те реакции, которые были поставлены авторизованным пользователем.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":7231942},"example":7231942},{"name":"code","in":"query","description":"Emoji символ реакции","required":true,"schema":{"type":"string","example":"👍"},"example":"👍","explode":false},{"name":"name","in":"query","description":"Текстовое имя эмодзи (используется для кастомных эмодзи)","required":false,"schema":{"type":"string","example":":+1:"},"example":":+1:","explode":false}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"reactions:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление реакции\n\n**Метод**: `DELETE`\n\n**Путь**: `/messages/{id}/reactions`\n\n> **Скоуп:** `reactions:write`\n\nМетод для удаления реакции на сообщение.\n\nДля удаления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения хранятся в виде символов `Emoji`.\n\nУдалять можно только те реакции, которые были поставлены авторизованным пользователем.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n### Query параметры\n\n- `code: string` (required) — Emoji символ реакции\n- `name: string` — Текстовое имя эмодзи (используется для кастомных эмодзи)\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/messages/7231942/reactions?code=👍&name=:+1:\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/messages/{id}/reactions","summary":"Список реакций","scope":"reactions:read","plan":null,"auth":true,"paginated":true,"command":"pachca reactions list","docLink":"https://dev.pachca.com/api/reactions/list","describe":"# GET /messages/{id}/reactions — Список реакций\n\n> **Скоуп:** `reactions:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca reactions list 194275 \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/reactions/list\nПолная справка: `pachca api GET /messages/{id}/reactions --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/messages/{id}/reactions","description":"Список реакций\n\nМетод для получения актуального списка реакций на сообщение.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Реакция на сообщение","required":["user_id","created_at","code","name"],"properties":{"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который добавил реакцию","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-01-20T10:30:00.000Z"},"code":{"type":"string","description":"Emoji символ реакции","example":"👍"},"name":{"type":"string","description":"Название emoji реакции","example":":+1::skin-tone-1:","nullable":true}},"$ref":"#/components/schemas/Reaction"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"reactions:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список реакций\n\n**Метод**: `GET`\n\n**Путь**: `/messages/{id}/reactions`\n\n> **Скоуп:** `reactions:read`\n\nМетод для получения актуального списка реакций на сообщение.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n### Query параметры\n\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/messages/194275/reactions?limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `user_id: integer, int32` (required) — Идентификатор пользователя, который добавил реакцию. Пример: `12`\n - `created_at: date-time` (required) — Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-01-20T10:30:00.000Z\"`\n - `code: string` (required) — Emoji символ реакции. Пример: `\"👍\"`\n - `name: string` (required) — Название emoji реакции. Пример: `\":+1::skin-tone-1:\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"user_id\": 12,\n \"created_at\": \"2024-01-20T10:30:00.000Z\",\n \"code\": \"👍\",\n \"name\": \":+1::skin-tone-1:\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/messages/{id}/read_member_ids","summary":"Список прочитавших сообщение","scope":"messages:read","plan":null,"auth":true,"paginated":true,"command":"pachca read-member list-readers","docLink":"https://dev.pachca.com/api/read-member/list-readers","describe":"# GET /messages/{id}/read_member_ids — Список прочитавших сообщение\n\n> **Скоуп:** `messages:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca read-member list-readers 194275 \\\n --limit=300 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/read-member/list-readers\nПолная справка: `pachca api GET /messages/{id}/read_member_ids --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/messages/{id}/read_member_ids","description":"Список прочитавших сообщение\n\nМетод для получения актуального списка пользователей, прочитавших сообщение.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":194275},"example":194275},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":300,"example":300,"minimum":1,"maximum":300},"example":300,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"integer","format":"int32"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"messages:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список прочитавших сообщение\n\n**Метод**: `GET`\n\n**Путь**: `/messages/{id}/read_member_ids`\n\n> **Скоуп:** `messages:read`\n\nМетод для получения актуального списка пользователей, прочитавших сообщение.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n### Query параметры\n\n- `limit: integer, int32` (default: 300) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/messages/194275/read_member_ids?limit=300\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of integer` (required)\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n 100\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/messages/{id}/thread","summary":"Новый тред","scope":"threads:create","plan":null,"auth":true,"paginated":false,"command":"pachca threads add","docLink":"https://dev.pachca.com/api/threads/add","describe":"# POST /messages/{id}/thread — Новый тред\n\n> **Скоуп:** `threads:create`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор сообщения\n\n## Эквивалентная команда\n\n```bash\npachca threads add 154332686 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/threads/add\nПолная справка: `pachca api POST /messages/{id}/thread --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/messages/{id}/thread","description":"Новый тред\n\nМетод для создания нового треда к сообщению.\n\nЕсли у сообщения уже был создан тред, то в ответе на запрос вернётся информация об уже созданном ранее треде.","parameters":[{"name":"id","in":"path","description":"Идентификатор сообщения","required":true,"schema":{"type":"integer","format":"int32","example":154332686},"example":154332686}],"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тред","required":["id","chat_id","message_id","message_chat_id","updated_at"],"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред)","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages))","example":2637266155},"message_id":{"type":"integer","format":"int64","description":"Идентификатор сообщения, к которому был создан тред","example":154332686},"message_chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата сообщения","example":2637266154},"updated_at":{"type":"string","format":"date-time","description":"Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2023-02-01T19:20:47.204Z"}},"$ref":"#/components/schemas/Thread"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"threads:create","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новый тред\n\n**Метод**: `POST`\n\n**Путь**: `/messages/{id}/thread`\n\n> **Скоуп:** `threads:create`\n\nМетод для создания нового треда к сообщению.\n\nЕсли у сообщения уже был создан тред, то в ответе на запрос вернётся информация об уже созданном ранее треде.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор сообщения\n\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/messages/154332686/thread\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тред\n - `id: integer, int64` (required) — Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред). Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages)). Пример: `2637266155`\n - `message_id: integer, int64` (required) — Идентификатор сообщения, к которому был создан тред. Пример: `154332686`\n - `message_chat_id: integer, int64` (required) — Идентификатор чата сообщения. Пример: `2637266154`\n - `updated_at: date-time` (required) — Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2023-02-01T19:20:47.204Z\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 265142,\n \"chat_id\": 2637266155,\n \"message_id\": 154332686,\n \"message_chat_id\": 2637266154,\n \"updated_at\": \"2023-02-01T19:20:47.204Z\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/oauth/token/info","summary":"Информация о токене","scope":null,"plan":null,"auth":true,"paginated":false,"command":"pachca oauth token-info","docLink":"https://dev.pachca.com/api/oauth/token-info","describe":"# GET /oauth/token/info — Информация о токене\n\n## Эквивалентная команда\n\n```bash\npachca oauth token-info \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/oauth/token-info\nПолная справка: `pachca api GET /oauth/token/info --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/oauth/token/info","description":"Информация о токене\n\nМетод для получения информации о текущем OAuth токене, включая его скоупы, дату создания и последнего использования. Токен в ответе маскируется — видны только первые 8 и последние 4 символа.","parameters":[],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Токен доступа","required":["id","token","name","user_id","scopes","created_at","revoked_at","expires_in","last_used_at"],"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор токена","example":4827},"token":{"type":"string","description":"Маскированный токен (видны первые 8 и последние 4 символа)","example":"cH5kR9mN...x7Qp"},"name":{"type":"string","description":"Пользовательское имя токена","example":"Мой API токен","nullable":true},"user_id":{"type":"integer","format":"int64","description":"Идентификатор владельца токена","example":12},"scopes":{"type":"array","description":"Список скоупов токена","example":["messages:read","chats:read"],"items":{"type":"string","description":"Скоуп доступа OAuth токена","enum":["chats:read","chats:create","chats:update","chats:archive","chats:leave","chat_members:read","chat_members:write","chat_exports:read","chat_exports:write","messages:read","messages:create","messages:update","messages:delete","reactions:read","reactions:write","pins:write","threads:read","threads:create","link_previews:write","users:read","users:create","users:update","users:delete","group_tags:read","group_tags:write","bots:read","bots:write","bot_self:webhook:write","bot_self:write","profile:read","profile_status:read","profile_status:write","profile_avatar:write","user_status:read","user_status:write","user_avatar:write","custom_properties:read","audit_events:read","tasks:read","tasks:create","tasks:update","tasks:delete","files:read","files:write","uploads:write","views:write","webhooks:read","webhooks:write","webhooks:events:read","webhooks:events:delete","search:users","search:chats","search:messages"],"x-enum-descriptions":{"chats:read":"Просмотр чатов и списка чатов","chats:create":"Создание новых чатов","chats:update":"Изменение настроек чата","chats:archive":"Архивация и разархивация чатов","chats:leave":"Выход из чатов","chat_members:read":"Просмотр участников чата","chat_members:write":"Добавление, изменение и удаление участников чата","chat_exports:read":"Скачивание экспортов чата","chat_exports:write":"Создание экспортов чата","messages:read":"Просмотр сообщений в чатах","messages:create":"Отправка сообщений","messages:update":"Редактирование сообщений","messages:delete":"Удаление сообщений","reactions:read":"Просмотр реакций на сообщения","reactions:write":"Добавление и удаление реакций","pins:write":"Закрепление и открепление сообщений","threads:read":"Просмотр тредов (комментариев)","threads:create":"Создание тредов (комментариев)","link_previews:write":"Unfurl (разворачивание ссылок)","views:write":"Открытие форм (представлений)","users:read":"Просмотр информации о сотрудниках и списка сотрудников","users:create":"Создание новых сотрудников","users:update":"Редактирование данных сотрудника","users:delete":"Удаление сотрудников","group_tags:read":"Просмотр тегов","group_tags:write":"Создание, редактирование и удаление тегов","bots:read":"Просмотр ботов","bots:write":"Управление ботами","bot_self:webhook:write":"Самостоятельное управление адресом вебхука бота","bot_self:write":"Самостоятельное управление настройками бота","profile:read":"Просмотр информации о своем профиле","profile_status:read":"Просмотр статуса профиля","profile_status:write":"Изменение и удаление статуса профиля","profile_avatar:write":"Изменение и удаление аватара профиля","user_status:read":"Просмотр статуса сотрудника","user_status:write":"Изменение и удаление статуса сотрудника","user_avatar:write":"Изменение и удаление аватара сотрудника","custom_properties:read":"Просмотр дополнительных полей","audit_events:read":"Просмотр журнала аудита","tasks:read":"Просмотр задач","tasks:create":"Создание задач","tasks:update":"Изменение задачи","tasks:delete":"Удаление задачи","files:read":"Скачивание файлов","files:write":"Загрузка файлов","uploads:write":"Получение данных для загрузки файлов","webhooks:read":"Просмотр вебхуков","webhooks:write":"Создание и управление вебхуками","webhooks:events:read":"Просмотр лога вебхуков","webhooks:events:delete":"Удаление записи в логе вебхука","search:users":"Поиск сотрудников","search:chats":"Поиск чатов","search:messages":"Поиск сообщений"},"x-scope-roles":{"chats:read":["owner","admin","user","bot"],"chats:create":["owner","admin","user","bot"],"chats:update":["owner","admin","user","bot"],"chats:archive":["owner","admin","user","bot"],"chats:leave":["owner","admin","user","bot"],"chat_members:read":["owner","admin","user","bot"],"chat_members:write":["owner","admin","user","bot"],"chat_exports:read":["owner"],"chat_exports:write":["owner"],"messages:read":["owner","admin","user","bot"],"messages:create":["owner","admin","user","bot"],"messages:update":["owner","admin","user","bot"],"messages:delete":["owner","admin","user","bot"],"reactions:read":["owner","admin","user","bot"],"reactions:write":["owner","admin","user","bot"],"pins:write":["owner","admin","user","bot"],"threads:read":["owner","admin","user","bot"],"threads:create":["owner","admin","user","bot"],"link_previews:write":["owner","admin","user","bot"],"views:write":["owner","admin","user","bot"],"users:read":["owner","admin","user","bot"],"users:create":["owner","admin"],"users:update":["owner","admin"],"users:delete":["owner","admin"],"group_tags:read":["owner","admin"],"group_tags:write":["owner","admin"],"bots:read":["owner","admin","user"],"bots:write":["owner","admin","user"],"bot_self:webhook:write":["bot"],"bot_self:write":["bot"],"profile:read":["owner","admin","user","bot"],"profile_status:read":["owner","admin","user","bot"],"profile_status:write":["owner","admin","user","bot"],"profile_avatar:write":["owner","admin","user","bot"],"user_status:read":["owner","admin"],"user_status:write":["owner","admin"],"user_avatar:write":["owner","admin"],"custom_properties:read":["owner","admin","user","bot"],"audit_events:read":["owner"],"tasks:read":["owner","admin","user","bot"],"tasks:create":["owner","admin","user","bot"],"tasks:update":["owner","admin","user","bot"],"tasks:delete":["owner","admin","user","bot"],"files:read":["owner","admin","user","bot"],"files:write":["owner","admin","user","bot"],"uploads:write":["owner","admin","user","bot"],"webhooks:read":["owner","admin","user","bot"],"webhooks:write":["owner","admin","user","bot"],"webhooks:events:read":["owner","admin","user","bot"],"webhooks:events:delete":["owner","admin","user","bot"],"search:users":["owner","admin","user","bot"],"search:chats":["owner","admin","user","bot"],"search:messages":["owner","admin","user","bot"]},"$ref":"#/components/schemas/OAuthScope"}},"created_at":{"type":"string","format":"date-time","description":"Дата создания токена","example":"2025-01-15T10:30:00.000Z"},"revoked_at":{"type":"string","format":"date-time","description":"Дата отзыва токена","example":null,"nullable":true},"expires_in":{"type":"integer","format":"int32","description":"Время жизни токена в секундах","example":null,"nullable":true},"last_used_at":{"type":"string","format":"date-time","description":"Дата последнего использования токена","example":"2025-02-24T14:20:00.000Z","nullable":true}},"$ref":"#/components/schemas/AccessTokenInfo"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"paginated":false},"docs":"# Информация о токене\n\n**Метод**: `GET`\n\n**Путь**: `/oauth/token/info`\n\nМетод для получения информации о текущем OAuth токене, включая его скоупы, дату создания и последнего использования. Токен в ответе маскируется — видны только первые 8 и последние 4 символа.\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/oauth/token/info\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Токен доступа\n - `id: integer, int64` (required) — Идентификатор токена. Пример: `4827`\n - `token: string` (required) — Маскированный токен (видны первые 8 и последние 4 символа). Пример: `\"cH5kR9mN...x7Qp\"`\n - `name: string` (required) — Пользовательское имя токена. Пример: `\"Мой API токен\"`\n - `user_id: integer, int64` (required) — Идентификатор владельца токена. Пример: `12`\n - `scopes: array of string` (required) — Список скоупов токена. Пример: `[\"messages:read\",\"chats:read\"]`\n - `created_at: date-time` (required) — Дата создания токена. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `revoked_at: date-time` (required) — Дата отзыва токена. Пример: `null`\n - `expires_in: integer, int32` (required) — Время жизни токена в секундах. Пример: `null`\n - `last_used_at: date-time` (required) — Дата последнего использования токена. Пример: `\"2025-02-24T14:20:00.000Z\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 4827,\n \"token\": \"cH5kR9mN...x7Qp\",\n \"name\": \"Мой API токен\",\n \"user_id\": 12,\n \"scopes\": [\n \"messages:read\",\n \"chats:read\"\n ],\n \"created_at\": \"2025-01-15T10:30:00.000Z\",\n \"revoked_at\": null,\n \"expires_in\": null,\n \"last_used_at\": \"2025-02-24T14:20:00.000Z\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/profile","summary":"Свой профиль","scope":"profile:read","plan":null,"auth":true,"paginated":false,"command":"pachca profile get","docLink":"https://dev.pachca.com/api/profile/get","describe":"# GET /profile — Свой профиль\n\n> **Скоуп:** `profile:read`\n\n## Эквивалентная команда\n\n```bash\npachca profile get \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/get\nПолная справка: `pachca api GET /profile --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/profile","description":"Свой профиль\n\nМетод для получения информации о своем профиле.","parameters":[],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"profile:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Свой профиль\n\n**Метод**: `GET`\n\n**Путь**: `/profile`\n\n> **Скоуп:** `profile:read`\n\nМетод для получения информации о своем профиле.\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/profile\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сотрудник\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"PUT","path":"/profile/avatar","summary":"Загрузка своего аватара","scope":"profile_avatar:write","plan":null,"auth":true,"paginated":false,"command":"pachca profile update-avatar","docLink":"https://dev.pachca.com/api/profile/update-avatar","describe":"# PUT /profile/avatar — Загрузка своего аватара\n\n> **Скоуп:** `profile_avatar:write`\n\n## Тело запроса\n\n- `image: binary` (required) — Файл изображения для аватара\n\n## Эквивалентная команда\n\n```bash\npachca profile update-avatar \\\n --file=./image.jpg \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/update-avatar\nПолная справка: `pachca api PUT /profile/avatar --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/profile/avatar","description":"Загрузка своего аватара\n\nМетод для загрузки или обновления аватара своего профиля. Файл передается в формате `multipart/form-data`.","parameters":[],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary","description":"Файл изображения для аватара"}}}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Данные аватара","required":["image_url"],"properties":{"image_url":{"type":"string","description":"URL аватара","example":"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg"}},"$ref":"#/components/schemas/AvatarData"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"profile_avatar:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Загрузка своего аватара\n\n**Метод**: `PUT`\n\n**Путь**: `/profile/avatar`\n\n> **Скоуп:** `profile_avatar:write`\n\nМетод для загрузки или обновления аватара своего профиля. Файл передается в формате `multipart/form-data`.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `multipart/form-data`\n\n### Схема\n\n- `image: binary` (required) — Файл изображения для аватара\n\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/profile/avatar\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -F \"image=@filename.png\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Данные аватара\n - `image_url: string` (required) — URL аватара. Пример: `\"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"image_url\": \"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/profile/avatar","summary":"Удаление своего аватара","scope":"profile_avatar:write","plan":null,"auth":true,"paginated":false,"command":"pachca profile delete-avatar","docLink":"https://dev.pachca.com/api/profile/delete-avatar","describe":"# DELETE /profile/avatar — Удаление своего аватара\n\n> **Скоуп:** `profile_avatar:write`\n\n## Эквивалентная команда\n\n```bash\npachca profile delete-avatar \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/delete-avatar\nПолная справка: `pachca api DELETE /profile/avatar --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/profile/avatar","description":"Удаление своего аватара\n\nМетод для удаления аватара своего профиля.","parameters":[],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}}},"requirements":{"scope":"profile_avatar:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление своего аватара\n\n**Метод**: `DELETE`\n\n**Путь**: `/profile/avatar`\n\n> **Скоуп:** `profile_avatar:write`\n\nМетод для удаления аватара своего профиля.\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/profile/avatar\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/profile/status","summary":"Свой статус","scope":"profile_status:read","plan":null,"auth":true,"paginated":false,"command":"pachca profile get-status","docLink":"https://dev.pachca.com/api/profile/get-status","describe":"# GET /profile/status — Свой статус\n\n> **Скоуп:** `profile_status:read`\n\n## Эквивалентная команда\n\n```bash\npachca profile get-status \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/get-status\nПолная справка: `pachca api GET /profile/status --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/profile/status","description":"Свой статус\n\nМетод для получения информации о своем статусе.","parameters":[],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"profile_status:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Свой статус\n\n**Метод**: `GET`\n\n**Путь**: `/profile/status`\n\n> **Скоуп:** `profile_status:read`\n\nМетод для получения информации о своем статусе.\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/profile/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Статус пользователя\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"PUT","path":"/profile/status","summary":"Новый свой статус","scope":"profile_status:write","plan":null,"auth":true,"paginated":false,"command":"pachca profile update-status","docLink":"https://dev.pachca.com/api/profile/update-status","describe":"# PUT /profile/status — Новый свой статус\n\n> **Скоуп:** `profile_status:write`\n\n## Тело запроса\n\n- `status: object` (required)\n - `emoji: string` (required) — Emoji символ статуса\n - `title: string` (required) — Текст статуса\n - `expires_at: date-time` — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ\n - `is_away: boolean` — Режим «Нет на месте»\n - `away_message: string` (max length: 1024) — Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.\n\n## Эквивалентная команда\n\n```bash\npachca profile update-status \\\n --emoji=🎮 \\\n --title=\"Очень занят\" \\\n --expires-at=2024-04-08T10:00:00.000Z \\\n --is-away \\\n --away-message=\"Вернусь после 15:00\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/update-status\nПолная справка: `pachca api PUT /profile/status --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/profile/status","description":"Новый свой статус\n\nМетод для установки себе нового статуса.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на установку статуса","required":["status"],"properties":{"status":{"type":"object","required":["emoji","title"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z"},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":true},"away_message":{"type":"string","description":"Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.","example":"Вернусь после 15:00","maxLength":1024}}}},"$ref":"#/components/schemas/StatusUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"profile_status:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новый свой статус\n\n**Метод**: `PUT`\n\n**Путь**: `/profile/status`\n\n> **Скоуп:** `profile_status:write`\n\nМетод для установки себе нового статуса.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `status: object` (required)\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` — Режим «Нет на месте». Пример: `true`\n - `away_message: string` (max length: 1024) — Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.. Пример: `\"Вернусь после 15:00\"`\n\n### Пример\n\n```json\n{\n \"status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": true,\n \"away_message\": \"Вернусь после 15:00\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/profile/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": true,\n \"away_message\": \"Вернусь после 15:00\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Статус пользователя\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/profile/status","summary":"Удаление своего статуса","scope":"profile_status:write","plan":null,"auth":true,"paginated":false,"command":"pachca profile delete-status","docLink":"https://dev.pachca.com/api/profile/delete-status","describe":"# DELETE /profile/status — Удаление своего статуса\n\n> **Скоуп:** `profile_status:write`\n\n## Эквивалентная команда\n\n```bash\npachca profile delete-status \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/profile/delete-status\nПолная справка: `pachca api DELETE /profile/status --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/profile/status","description":"Удаление своего статуса\n\nМетод для удаления своего статуса.","parameters":[],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"profile_status:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление своего статуса\n\n**Метод**: `DELETE`\n\n**Путь**: `/profile/status`\n\n> **Скоуп:** `profile_status:write`\n\nМетод для удаления своего статуса.\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/profile/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/search/chats","summary":"Поиск чатов","scope":"search:chats","plan":null,"auth":true,"paginated":true,"command":"pachca search list-chats","docLink":"https://dev.pachca.com/api/search/list-chats","describe":"# GET /search/chats — Поиск чатов\n\n> **Скоуп:** `search:chats`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `query` — query: Текст поискового запроса\n- `limit` — query: Количество возвращаемых результатов за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page`)\n- `order` — query: Направление сортировки\n- `created_from` — query: Фильтр по дате создания (от)\n- `created_to` — query: Фильтр по дате создания (до)\n- `active` — query: Фильтр по активности чата\n- `chat_subtype` — query: Фильтр по типу чата\n- `personal` — query: Фильтр по личным чатам\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca search list-chats \\\n --query=Разработка \\\n --limit=10 \\\n --order=desc \\\n --created-from=2025-01-01T00:00:00.000Z \\\n --created-to=2025-02-01T00:00:00.000Z \\\n --active \\\n --chat-subtype=discussion \\\n --no-personal \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/search/list-chats\nПолная справка: `pachca api GET /search/chats --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/search/chats","description":"Поиск чатов\n\nМетод для полнотекстового поиска каналов и бесед.","parameters":[{"name":"query","in":"query","description":"Текст поискового запроса","required":false,"schema":{"type":"string","example":"Разработка"},"example":"Разработка","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых результатов за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":100,"example":10,"maximum":100},"example":10,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"example":"desc","$ref":"#/components/schemas/SortOrder"},"example":"desc","explode":false},{"name":"created_from","in":"query","description":"Фильтр по дате создания (от)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"created_to","in":"query","description":"Фильтр по дате создания (до)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"active","in":"query","description":"Фильтр по активности чата","required":false,"schema":{"type":"boolean","example":true},"example":true,"explode":false},{"name":"chat_subtype","in":"query","description":"Фильтр по типу чата","required":false,"schema":{"type":"string","description":"Тип чата","enum":["discussion","thread"],"x-enum-descriptions":{"discussion":"Канал или беседа","thread":"Тред"},"example":"discussion","$ref":"#/components/schemas/ChatSubtype"},"example":"discussion","explode":false},{"name":"personal","in":"query","description":"Фильтр по личным чатам","required":false,"schema":{"type":"boolean","example":false},"example":false,"explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа поисковых результатов с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Чат","required":["id","name","created_at","owner_id","member_ids","group_tag_ids","channel","personal","public","last_message_at","meet_room_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор созданного чата","example":334},"name":{"type":"string","description":"Название","example":"🤿 aqua"},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего чат","example":185},"member_ids":{"type":"array","description":"Массив идентификаторов пользователей, участников","example":[185,186,187],"items":{"type":"integer","format":"int32"}},"group_tag_ids":{"type":"array","description":"Массив идентификаторов тегов, участников","example":[9111],"items":{"type":"integer","format":"int32"}},"channel":{"type":"boolean","description":"Является каналом","example":true},"personal":{"type":"boolean","description":"Является личным чатом","example":false},"public":{"type":"boolean","description":"Открытый доступ","example":false},"last_message_at":{"type":"string","format":"date-time","description":"Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:56:53.000Z"},"meet_room_url":{"type":"string","description":"Ссылка на Видеочат","example":"https://meet.pachca.com/aqua-94bb21b5"}},"$ref":"#/components/schemas/Chat"}},"meta":{"type":"object","description":"Мета-информация для пагинации поисковых результатов","required":["total","paginate"],"properties":{"total":{"type":"integer","format":"int32","description":"Общее количество найденных результатов","example":42},"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"}}}},"$ref":"#/components/schemas/SearchPaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"search:chats","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Поиск чатов\n\n**Метод**: `GET`\n\n**Путь**: `/search/chats`\n\n> **Скоуп:** `search:chats`\n\nМетод для полнотекстового поиска каналов и бесед.\n\n## Параметры\n\n### Query параметры\n\n- `query: string` — Текст поискового запроса\n- `limit: integer, int32` (default: 100) — Количество возвращаемых результатов за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`)\n- `order: string` — Направление сортировки\n Значения: `asc`, `desc`\n- `created_from: date-time` — Фильтр по дате создания (от)\n- `created_to: date-time` — Фильтр по дате создания (до)\n- `active: boolean` — Фильтр по активности чата\n- `chat_subtype: string` — Фильтр по типу чата\n Значения: `discussion`, `thread`\n- `personal: boolean` — Фильтр по личным чатам\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/search/chats?query=Разработка&limit=10&order=desc&created_from=2025-01-01T00:00:00.000Z&created_to=2025-02-01T00:00:00.000Z&active=true&chat_subtype=discussion&personal=false\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор созданного чата. Пример: `334`\n - `name: string` (required) — Название. Пример: `\"🤿 aqua\"`\n - `created_at: date-time` (required) — Дата и время создания чата (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, создавшего чат. Пример: `185`\n - `member_ids: array of integer` (required) — Массив идентификаторов пользователей, участников. Пример: `[185,186,187]`\n - `group_tag_ids: array of integer` (required) — Массив идентификаторов тегов, участников. Пример: `[9111]`\n - `channel: boolean` (required) — Является каналом. Пример: `true`\n - `personal: boolean` (required) — Является личным чатом. Пример: `false`\n - `public: boolean` (required) — Открытый доступ. Пример: `false`\n - `last_message_at: date-time` (required) — Дата и время создания последнего сообщения в чате (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:56:53.000Z\"`\n - `meet_room_url: string` (required) — Ссылка на Видеочат. Пример: `\"https://meet.pachca.com/aqua-94bb21b5\"`\n- `meta: object` (required) — Мета-информация для пагинации поисковых результатов\n - `total: integer, int32` (required) — Общее количество найденных результатов. Пример: `42`\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 334,\n \"name\": \"🤿 aqua\",\n \"created_at\": \"2021-08-28T15:56:53.000Z\",\n \"owner_id\": 185,\n \"member_ids\": [\n 185,\n 186,\n 187\n ],\n \"group_tag_ids\": [\n 9111\n ],\n \"channel\": true,\n \"personal\": false,\n \"public\": false,\n \"last_message_at\": \"2021-08-28T15:56:53.000Z\",\n \"meet_room_url\": \"https://meet.pachca.com/aqua-94bb21b5\"\n }\n ],\n \"meta\": {\n \"total\": 42,\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/search/messages","summary":"Поиск сообщений","scope":"search:messages","plan":null,"auth":true,"paginated":true,"command":"pachca search list-messages","docLink":"https://dev.pachca.com/api/search/list-messages","describe":"# GET /search/messages — Поиск сообщений\n\n> **Скоуп:** `search:messages`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `query` — query: Текст поискового запроса\n- `limit` — query: Количество возвращаемых результатов за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page`)\n- `order` — query: Направление сортировки\n- `sort` — query: Сортировка результатов\n- `created_from` — query: Фильтр по дате создания (от)\n- `created_to` — query: Фильтр по дате создания (до)\n- `chat_ids` — query: Фильтр по ID чатов\n- `user_ids` — query: Фильтр по ID авторов сообщений\n- `active` — query: Фильтр по активности чата\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca search list-messages \\\n --query=футболки \\\n --limit=10 \\\n --order=desc \\\n --sort=created_at \\\n --created-from=2025-01-01T00:00:00.000Z \\\n --created-to=2025-02-01T00:00:00.000Z \\\n --chat-ids=198,334 \\\n --user-ids=12,185 \\\n --active \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/search/list-messages\nПолная справка: `pachca api GET /search/messages --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/search/messages","description":"Поиск сообщений\n\nМетод для полнотекстового поиска сообщений.","parameters":[{"name":"query","in":"query","description":"Текст поискового запроса","required":false,"schema":{"type":"string","example":"футболки"},"example":"футболки","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых результатов за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":200,"example":10,"maximum":200},"example":10,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"example":"desc","$ref":"#/components/schemas/SortOrder"},"example":"desc","explode":false},{"name":"sort","in":"query","description":"Сортировка результатов","required":false,"schema":{"default":"created_at","allOf":[{"type":"string","description":"Сортировка результатов поиска сообщений","enum":["created_at","relevance"],"x-enum-descriptions":{"created_at":"По дате создания (хронология)","relevance":"По релевантности"},"$ref":"#/components/schemas/MessageSearchSort"}]},"example":"created_at","explode":false},{"name":"created_from","in":"query","description":"Фильтр по дате создания (от)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"created_to","in":"query","description":"Фильтр по дате создания (до)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"chat_ids","in":"query","description":"Фильтр по ID чатов","required":false,"schema":{"type":"array","example":[198,334],"items":{"type":"integer","format":"int32"}},"example":[198,334],"explode":false},{"name":"user_ids","in":"query","description":"Фильтр по ID авторов сообщений","required":false,"schema":{"type":"array","example":[12,185],"items":{"type":"integer","format":"int32"}},"example":[12,185],"explode":false},{"name":"active","in":"query","description":"Фильтр по активности чата","required":false,"schema":{"type":"boolean","example":true},"example":true,"explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа поисковых результатов с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сообщение","required":["id","entity_type","entity_id","chat_id","root_chat_id","content","user_id","created_at","url","files","voice_content","buttons","thread","forwarding","parent_message_id","display_avatar_url","display_name","changed_at","deleted_at"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":194275},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)","example":334},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":334},"root_chat_id":{"type":"integer","format":"int32","description":"Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.","example":334},"content":{"type":"string","description":"Текст сообщения","example":"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего сообщение","example":12},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T15:57:23.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://app.pachca.com/chats/334?message=194275"},"files":{"type":"array","description":"Прикрепленные файлы","items":{"type":"object","description":"Файл","required":["id","key","name","file_type","url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор файла","example":3560},"key":{"type":"string","description":"Путь к файлу","example":"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png"},"name":{"type":"string","description":"Название файла с расширением","example":"congrat.png"},"file_type":{"description":"Тип файла","example":"image","allOf":[{"type":"string","description":"Тип файла","enum":["file","image","audio","voice"],"x-enum-descriptions":{"file":"Обычный файл","image":"Изображение","audio":"Аудиофайл","voice":"Голосовое сообщение"},"$ref":"#/components/schemas/FileType"}]},"url":{"type":"string","description":"Прямая ссылка на скачивание файла","example":"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8"},"width":{"type":"integer","format":"int32","description":"Ширина изображения в пикселях","example":1920,"nullable":true},"height":{"type":"integer","format":"int32","description":"Высота изображения в пикселях","example":1080,"nullable":true}},"$ref":"#/components/schemas/File"}},"voice_content":{"type":"object","description":"Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.","nullable":true,"allOf":[{"type":"object","description":"Данные голосового сообщения","required":["duration_ms","waveform","transcript"],"properties":{"duration_ms":{"type":"integer","format":"int32","description":"Длительность голосового сообщения в миллисекундах","example":5400},"waveform":{"type":"string","description":"Форма волны (амплитуды) для визуализации голосового сообщения","example":"4,8,12,20,16,10,6,3"},"transcript":{"type":"string","description":"Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.","example":"Привет, посмотри пожалуйста последний отчёт","nullable":true}},"$ref":"#/components/schemas/VoiceContent"}]},"buttons":{"type":"array","description":"Массив строк, каждая из которых представлена массивом кнопок","nullable":true,"items":{"type":"array","items":{"type":"object","description":"Кнопка","required":["text"],"properties":{"text":{"type":"string","description":"Текст, отображаемый на кнопке","example":"Подробнее","maxLength":255},"url":{"type":"string","description":"Ссылка, которая будет открыта по нажатию кнопки","example":"https://example.com/details"},"data":{"type":"string","description":"Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки","example":"awesome","maxLength":255}},"$ref":"#/components/schemas/Button"}}},"thread":{"type":"object","description":"Тред сообщения","required":["id","chat_id"],"nullable":true,"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор треда","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда","example":2637266155}}},"forwarding":{"type":"object","description":"Информация о пересланном сообщении","nullable":true,"allOf":[{"type":"object","description":"Информация о пересланном сообщении","required":["original_message_id","original_chat_id","author_id","original_created_at","original_thread_id","original_thread_message_id","original_thread_parent_chat_id"],"properties":{"original_message_id":{"type":"integer","format":"int32","description":"Идентификатор оригинального сообщения","example":194275},"original_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится оригинальное сообщение","example":334},"author_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, создавшего оригинальное сообщение","example":12},"original_created_at":{"type":"string","format":"date-time","description":"Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-15T10:30:00.000Z"},"original_thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true},"original_thread_parent_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение","example":null,"nullable":true}},"$ref":"#/components/schemas/Forwarding"}]},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":null,"nullable":true},"display_avatar_url":{"type":"string","description":"Ссылка на аватарку отправителя сообщения","example":null,"nullable":true},"display_name":{"type":"string","description":"Полное имя отправителя сообщения","example":null,"nullable":true},"changed_at":{"type":"string","format":"date-time","description":"Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2021-08-28T16:10:00.000Z","nullable":true},"deleted_at":{"type":"string","format":"date-time","description":"Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":null,"nullable":true}},"$ref":"#/components/schemas/Message"}},"meta":{"type":"object","description":"Мета-информация для пагинации поисковых результатов","required":["total","paginate"],"properties":{"total":{"type":"integer","format":"int32","description":"Общее количество найденных результатов","example":42},"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"}}}},"$ref":"#/components/schemas/SearchPaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"search:messages","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Поиск сообщений\n\n**Метод**: `GET`\n\n**Путь**: `/search/messages`\n\n> **Скоуп:** `search:messages`\n\nМетод для полнотекстового поиска сообщений.\n\n## Параметры\n\n### Query параметры\n\n- `query: string` — Текст поискового запроса\n- `limit: integer, int32` (default: 200) — Количество возвращаемых результатов за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`)\n- `order: string` — Направление сортировки\n Значения: `asc`, `desc`\n- `sort: string` (default: created_at) — Сортировка результатов\n- `created_from: date-time` — Фильтр по дате создания (от)\n- `created_to: date-time` — Фильтр по дате создания (до)\n- `chat_ids: array` — Фильтр по ID чатов\n- `user_ids: array` — Фильтр по ID авторов сообщений\n- `active: boolean` — Фильтр по активности чата\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/search/messages?query=футболки&limit=10&order=desc&sort=created_at&created_from=2025-01-01T00:00:00.000Z&created_to=2025-02-01T00:00:00.000Z&chat_ids[]=198&chat_ids[]=334&user_ids[]=12&user_ids[]=185&active=true\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `194275`\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя). Пример: `334`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `334`\n - `root_chat_id: integer, int32` (required) — Идентификатор корневого чата. Для сообщений в тредах — идентификатор чата, в котором был создан тред. Для обычных сообщений совпадает с `chat_id`.. Пример: `334`\n - `content: string` (required) — Текст сообщения. Пример: `\"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, создавшего сообщение. Пример: `12`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T15:57:23.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://app.pachca.com/chats/334?message=194275\"`\n - `files: array of object` (required) — Прикрепленные файлы\n - `id: integer, int32` (required) — Идентификатор файла. Пример: `3560`\n - `key: string` (required) — Путь к файлу. Пример: `\"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\"`\n - `name: string` (required) — Название файла с расширением. Пример: `\"congrat.png\"`\n - `file_type: string` (required) — Тип файла\n Значения: `file` — Обычный файл, `image` — Изображение, `audio` — Аудиофайл, `voice` — Голосовое сообщение\n - `url: string` (required) — Прямая ссылка на скачивание файла. Пример: `\"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\"`\n - `width: integer, int32` — Ширина изображения в пикселях. Пример: `1920`\n - `height: integer, int32` — Высота изображения в пикселях. Пример: `1080`\n - `voice_content: object` (required) — Данные голосового сообщения. Заполняется только для голосовых сообщений (`file_type` файла — `voice`), иначе `null`.\n - `duration_ms: integer, int32` (required) — Длительность голосового сообщения в миллисекундах. Пример: `5400`\n - `waveform: string` (required) — Форма волны (амплитуды) для визуализации голосового сообщения. Пример: `\"4,8,12,20,16,10,6,3\"`\n - `transcript: string` (required) — Расшифровка голосового сообщения в текст. `null`, пока расшифровка не готова или недоступна.. Пример: `\"Привет, посмотри пожалуйста последний отчёт\"`\n - `buttons: array of array` (required) — Массив строк, каждая из которых представлена массивом кнопок\n - `thread: object` (required) — Тред сообщения\n - `id: integer, int64` (required) — Идентификатор треда. Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда. Пример: `2637266155`\n - `forwarding: object` (required) — Информация о пересланном сообщении\n - `original_message_id: integer, int32` (required) — Идентификатор оригинального сообщения. Пример: `194275`\n - `original_chat_id: integer, int32` (required) — Идентификатор чата, в котором находится оригинальное сообщение. Пример: `334`\n - `author_id: integer, int32` (required) — Идентификатор пользователя, создавшего оригинальное сообщение. Пример: `12`\n - `original_created_at: date-time` (required) — Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-15T10:30:00.000Z\"`\n - `original_thread_id: integer, int32` (required) — Идентификатор треда, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `original_thread_parent_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение. Пример: `null`\n - `parent_message_id: integer, int32` (required) — Идентификатор сообщения, к которому написан ответ. Пример: `null`\n - `display_avatar_url: string` (required) — Ссылка на аватарку отправителя сообщения. Пример: `null`\n - `display_name: string` (required) — Полное имя отправителя сообщения. Пример: `null`\n - `changed_at: date-time` (required) — Дата и время последнего редактирования сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2021-08-28T16:10:00.000Z\"`\n - `deleted_at: date-time` (required) — Дата и время удаления сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `null`\n- `meta: object` (required) — Мета-информация для пагинации поисковых результатов\n - `total: integer, int32` (required) — Общее количество найденных результатов. Пример: `42`\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 194275,\n \"entity_type\": \"discussion\",\n \"entity_id\": 334,\n \"chat_id\": 334,\n \"root_chat_id\": 334,\n \"content\": \"Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)\",\n \"user_id\": 12,\n \"created_at\": \"2021-08-28T15:57:23.000Z\",\n \"url\": \"https://app.pachca.com/chats/334?message=194275\",\n \"files\": [\n {\n \"id\": 3560,\n \"key\": \"attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png\",\n \"name\": \"congrat.png\",\n \"file_type\": \"image\",\n \"url\": \"https://pachca-prod-uploads.s3.storage.selcloud.ru/attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png?response-cache-control=max-age%3D3600%3B&response-content-disposition=attachment&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=142155_staply%2F20231107%2Fru-1a%2Fs3%2Faws4_request&X-Amz-Date=20231107T160412&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=98765asgfadsfdSaDSd4sdfg35asdf67sadf8\",\n \"width\": 1920,\n \"height\": 1080\n }\n ],\n \"voice_content\": {\n \"duration_ms\": 5400,\n \"waveform\": \"4,8,12,20,16,10,6,3\",\n \"transcript\": \"Привет, посмотри пожалуйста последний отчёт\"\n },\n \"buttons\": [\n [\n {\n \"text\": null\n }\n ]\n ],\n \"thread\": {\n \"id\": 265142,\n \"chat_id\": 2637266155\n },\n \"forwarding\": {\n \"original_message_id\": 194275,\n \"original_chat_id\": 334,\n \"author_id\": 12,\n \"original_created_at\": \"2025-01-15T10:30:00.000Z\",\n \"original_thread_id\": null,\n \"original_thread_message_id\": null,\n \"original_thread_parent_chat_id\": null\n },\n \"parent_message_id\": null,\n \"display_avatar_url\": null,\n \"display_name\": null,\n \"changed_at\": \"2021-08-28T16:10:00.000Z\",\n \"deleted_at\": null\n }\n ],\n \"meta\": {\n \"total\": 42,\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/search/users","summary":"Поиск сотрудников","scope":"search:users","plan":null,"auth":true,"paginated":true,"command":"pachca search list-users","docLink":"https://dev.pachca.com/api/search/list-users","describe":"# GET /search/users — Поиск сотрудников\n\n> **Скоуп:** `search:users`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `query` — query: Текст поискового запроса\n- `limit` — query: Количество возвращаемых результатов за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page`)\n- `sort` — query: Сортировка результатов\n- `order` — query: Направление сортировки\n- `created_from` — query: Фильтр по дате создания (от)\n- `created_to` — query: Фильтр по дате создания (до)\n- `company_roles` — query: Фильтр по ролям сотрудников\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca search list-users \\\n --query=Олег \\\n --limit=10 \\\n --sort=by_score \\\n --order=desc \\\n --created-from=2025-01-01T00:00:00.000Z \\\n --created-to=2025-02-01T00:00:00.000Z \\\n --company-roles=admin,user \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/search/list-users\nПолная справка: `pachca api GET /search/users --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/search/users","description":"Поиск сотрудников\n\nМетод для полнотекстового поиска сотрудников по имени, email, должности и другим полям.","parameters":[{"name":"query","in":"query","description":"Текст поискового запроса","required":false,"schema":{"type":"string","example":"Олег"},"example":"Олег","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых результатов за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":200,"example":10,"maximum":200},"example":10,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false},{"name":"sort","in":"query","description":"Сортировка результатов","required":false,"schema":{"type":"string","description":"Сортировка результатов поиска","enum":["by_score","alphabetical","creation"],"x-enum-descriptions":{"by_score":"По релевантности","alphabetical":"По алфавиту","creation":"По дате создания"},"example":"by_score","$ref":"#/components/schemas/SearchSortOrder"},"example":"by_score","explode":false},{"name":"order","in":"query","description":"Направление сортировки","required":false,"schema":{"type":"string","description":"Порядок сортировки","enum":["asc","desc"],"x-enum-descriptions":{"asc":"По возрастанию","desc":"По убыванию"},"example":"desc","$ref":"#/components/schemas/SortOrder"},"example":"desc","explode":false},{"name":"created_from","in":"query","description":"Фильтр по дате создания (от)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"created_to","in":"query","description":"Фильтр по дате создания (до)","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"company_roles","in":"query","description":"Фильтр по ролям сотрудников","required":false,"schema":{"type":"array","example":["admin","user"],"items":{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}},"example":["admin","user"],"explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа поисковых результатов с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}},"meta":{"type":"object","description":"Мета-информация для пагинации поисковых результатов","required":["total","paginate"],"properties":{"total":{"type":"integer","format":"int32","description":"Общее количество найденных результатов","example":42},"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"}}}},"$ref":"#/components/schemas/SearchPaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"search:users","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Поиск сотрудников\n\n**Метод**: `GET`\n\n**Путь**: `/search/users`\n\n> **Скоуп:** `search:users`\n\nМетод для полнотекстового поиска сотрудников по имени, email, должности и другим полям.\n\n## Параметры\n\n### Query параметры\n\n- `query: string` — Текст поискового запроса\n- `limit: integer, int32` (default: 200) — Количество возвращаемых результатов за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page`)\n- `sort: string` — Сортировка результатов\n Значения: `by_score`, `alphabetical`, `creation`\n- `order: string` — Направление сортировки\n Значения: `asc`, `desc`\n- `created_from: date-time` — Фильтр по дате создания (от)\n- `created_to: date-time` — Фильтр по дате создания (до)\n- `company_roles: array` — Фильтр по ролям сотрудников\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/search/users?query=Олег&limit=10&sort=by_score&order=desc&created_from=2025-01-01T00:00:00.000Z&created_to=2025-02-01T00:00:00.000Z&company_roles[]=admin&company_roles[]=user\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n- `meta: object` (required) — Мета-информация для пагинации поисковых результатов\n - `total: integer, int32` (required) — Общее количество найденных результатов. Пример: `42`\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n ],\n \"meta\": {\n \"total\": 42,\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"POST","path":"/tasks","summary":"Новое напоминание","scope":"tasks:create","plan":null,"auth":true,"paginated":false,"command":"pachca tasks create","docLink":"https://dev.pachca.com/api/tasks/create","describe":"# POST /tasks — Новое напоминание\n\n> **Скоуп:** `tasks:create`\n\n## Тело запроса\n\n- `task: object` (required) — Собранный объект параметров создаваемого напоминания\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` — Описание (по умолчанию — название типа)\n - `due_at: date-time` — Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).\n - `priority: integer, int32` (default: 1) — Приоритет: 1, 2 (важно) или 3 (очень важно).\n - `performer_ids: array of integer` — Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы)\n - `chat_id: integer, int32` — Идентификатор чата, к которому привязывается напоминание\n - `all_day: boolean` — Напоминание на весь день (без указания времени)\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля\n - `value: string` (required) — Устанавливаемое значение\n\n## Эквивалентная команда\n\n```bash\npachca tasks create \\\n --kind=reminder \\\n --content=\"Забрать со склада 21 заказ\" \\\n --due-at=2020-06-05T12:00:00.000+03:00 \\\n --priority=2 \\\n --performer-ids=12,13 \\\n --chat-id=456 \\\n --no-all-day \\\n --custom-properties='[{\"id\":78,\"value\":\"Синий склад\"}]' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/create\nПолная справка: `pachca api POST /tasks --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/tasks","description":"Новое напоминание\n\nМетод для создания нового напоминания.\n\nПри создании напоминания обязательным условием является указания типа напоминания: звонок, встреча, простое напоминание, событие или письмо. При этом не требуется дополнительное описание - вы просто создадите напоминание с соответствующим текстом. Если вы укажите описание напоминания - то именно оно и станет текстом напоминания.\n\nУ напоминания должны быть ответственные, если их не указывать - ответственным назначается вы.\n\nОтветственным для напоминания без привязки к каким-либо сущностям может стать любой сотрудник компании. Актуальный состав сотрудников компании вы можете получить в методе [список сотрудников](GET /users).\n\nНапоминание можно привязать к чату, указав `chat_id`. Для привязки к чату необходимо быть его участником.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание напоминания","required":["task"],"properties":{"task":{"type":"object","description":"Собранный объект параметров создаваемого напоминания","required":["kind"],"properties":{"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание (по умолчанию — название типа)","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).","example":"2020-06-05T12:00:00.000+03:00"},"priority":{"type":"integer","format":"int32","description":"Приоритет: 1, 2 (важно) или 3 (очень важно).","default":1,"example":2},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы)","example":[12,13],"items":{"type":"integer","format":"int32"}},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязывается напоминание","example":456},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Задаваемые дополнительные поля","items":{"type":"object","required":["id","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":78},"value":{"type":"string","description":"Устанавливаемое значение","example":"Синий склад"}}}}}}},"$ref":"#/components/schemas/TaskCreateRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Напоминание","required":["id","kind","content","due_at","priority","user_id","chat_id","status","created_at","performer_ids","all_day","custom_properties"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор напоминания","example":22283},"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T09:00:00.000Z","nullable":true},"priority":{"type":"integer","format":"int32","description":"Приоритет","example":2},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя-создателя напоминания","example":12},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязано напоминание","example":334,"nullable":true},"status":{"description":"Статус напоминания","example":"undone","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-04T10:37:57.000Z"},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Дополнительные поля напоминания","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}}},"$ref":"#/components/schemas/Task"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"tasks:create","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Новое напоминание\n\n**Метод**: `POST`\n\n**Путь**: `/tasks`\n\n> **Скоуп:** `tasks:create`\n\nМетод для создания нового напоминания.\n\nПри создании напоминания обязательным условием является указания типа напоминания: звонок, встреча, простое напоминание, событие или письмо. При этом не требуется дополнительное описание - вы просто создадите напоминание с соответствующим текстом. Если вы укажите описание напоминания - то именно оно и станет текстом напоминания.\n\nУ напоминания должны быть ответственные, если их не указывать - ответственным назначается вы.\n\nОтветственным для напоминания без привязки к каким-либо сущностям может стать любой сотрудник компании. Актуальный состав сотрудников компании вы можете получить в методе [список сотрудников](GET /users).\n\nНапоминание можно привязать к чату, указав `chat_id`. Для привязки к чату необходимо быть его участником.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `task: object` (required) — Собранный объект параметров создаваемого напоминания\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` — Описание (по умолчанию — название типа). Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` — Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).. Пример: `\"2020-06-05T12:00:00.000+03:00\"`\n - `priority: integer, int32` (default: 1) — Приоритет: 1, 2 (важно) или 3 (очень важно).. Пример: `2`\n - `performer_ids: array of integer` — Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы). Пример: `[12,13]`\n - `chat_id: integer, int32` — Идентификатор чата, к которому привязывается напоминание. Пример: `456`\n - `all_day: boolean` — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `78`\n - `value: string` (required) — Устанавливаемое значение. Пример: `\"Синий склад\"`\n\n### Пример\n\n```json\n{\n \"task\": {\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T12:00:00.000+03:00\",\n \"priority\": 2,\n \"performer_ids\": [\n 12,\n 13\n ],\n \"chat_id\": 456,\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 78,\n \"value\": \"Синий склад\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/tasks\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task\": {\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T12:00:00.000+03:00\",\n \"priority\": 2,\n \"performer_ids\": [\n 12,\n 13\n ],\n \"chat_id\": 456,\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 78,\n \"value\": \"Синий склад\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Напоминание\n - `id: integer, int32` (required) — Идентификатор напоминания. Пример: `22283`\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` (required) — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` (required) — Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T09:00:00.000Z\"`\n - `priority: integer, int32` (required) — Приоритет. Пример: `2`\n - `user_id: integer, int32` (required) — Идентификатор пользователя-создателя напоминания. Пример: `12`\n - `chat_id: integer, int32` (required) — Идентификатор чата, к которому привязано напоминание. Пример: `334`\n - `status: string` (required) — Статус напоминания\n Значения: `done` — Выполнено, `undone` — Активно\n - `created_at: date-time` (required) — Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-04T10:37:57.000Z\"`\n - `performer_ids: array of integer` (required) — Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные». Пример: `[12]`\n - `all_day: boolean` (required) — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` (required) — Дополнительные поля напоминания\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 22283,\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T09:00:00.000Z\",\n \"priority\": 2,\n \"user_id\": 12,\n \"chat_id\": 334,\n \"status\": \"undone\",\n \"created_at\": \"2020-06-04T10:37:57.000Z\",\n \"performer_ids\": [\n 12\n ],\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/tasks","summary":"Список напоминаний","scope":"tasks:read","plan":null,"auth":true,"paginated":true,"command":"pachca tasks list","docLink":"https://dev.pachca.com/api/tasks/list","describe":"# GET /tasks — Список напоминаний\n\n> **Скоуп:** `tasks:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca tasks list \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/list\nПолная справка: `pachca api GET /tasks --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/tasks","description":"Список напоминаний\n\nМетод для получения списка напоминаний.","parameters":[{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Напоминание","required":["id","kind","content","due_at","priority","user_id","chat_id","status","created_at","performer_ids","all_day","custom_properties"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор напоминания","example":22283},"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T09:00:00.000Z","nullable":true},"priority":{"type":"integer","format":"int32","description":"Приоритет","example":2},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя-создателя напоминания","example":12},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязано напоминание","example":334,"nullable":true},"status":{"description":"Статус напоминания","example":"undone","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-04T10:37:57.000Z"},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Дополнительные поля напоминания","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}}},"$ref":"#/components/schemas/Task"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"tasks:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список напоминаний\n\n**Метод**: `GET`\n\n**Путь**: `/tasks`\n\n> **Скоуп:** `tasks:read`\n\nМетод для получения списка напоминаний.\n\n## Параметры\n\n### Query параметры\n\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/tasks?limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор напоминания. Пример: `22283`\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` (required) — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` (required) — Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T09:00:00.000Z\"`\n - `priority: integer, int32` (required) — Приоритет. Пример: `2`\n - `user_id: integer, int32` (required) — Идентификатор пользователя-создателя напоминания. Пример: `12`\n - `chat_id: integer, int32` (required) — Идентификатор чата, к которому привязано напоминание. Пример: `334`\n - `status: string` (required) — Статус напоминания\n Значения: `done` — Выполнено, `undone` — Активно\n - `created_at: date-time` (required) — Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-04T10:37:57.000Z\"`\n - `performer_ids: array of integer` (required) — Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные». Пример: `[12]`\n - `all_day: boolean` (required) — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` (required) — Дополнительные поля напоминания\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 22283,\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T09:00:00.000Z\",\n \"priority\": 2,\n \"user_id\": 12,\n \"chat_id\": 334,\n \"status\": \"undone\",\n \"created_at\": \"2020-06-04T10:37:57.000Z\",\n \"performer_ids\": [\n 12\n ],\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"GET","path":"/tasks/{id}","summary":"Информация о напоминании","scope":"tasks:read","plan":null,"auth":true,"paginated":false,"command":"pachca tasks get","docLink":"https://dev.pachca.com/api/tasks/get","describe":"# GET /tasks/{id} — Информация о напоминании\n\n> **Скоуп:** `tasks:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор напоминания\n\n## Эквивалентная команда\n\n```bash\npachca tasks get 22283 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/get\nПолная справка: `pachca api GET /tasks/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/tasks/{id}","description":"Информация о напоминании\n\nМетод для получения информации о напоминании.\n\nДля получения напоминания вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор напоминания","required":true,"schema":{"type":"integer","format":"int32","example":22283},"example":22283}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Напоминание","required":["id","kind","content","due_at","priority","user_id","chat_id","status","created_at","performer_ids","all_day","custom_properties"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор напоминания","example":22283},"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T09:00:00.000Z","nullable":true},"priority":{"type":"integer","format":"int32","description":"Приоритет","example":2},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя-создателя напоминания","example":12},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязано напоминание","example":334,"nullable":true},"status":{"description":"Статус напоминания","example":"undone","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-04T10:37:57.000Z"},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Дополнительные поля напоминания","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}}},"$ref":"#/components/schemas/Task"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"tasks:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о напоминании\n\n**Метод**: `GET`\n\n**Путь**: `/tasks/{id}`\n\n> **Скоуп:** `tasks:read`\n\nМетод для получения информации о напоминании.\n\nДля получения напоминания вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор напоминания\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/tasks/22283\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Напоминание\n - `id: integer, int32` (required) — Идентификатор напоминания. Пример: `22283`\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` (required) — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` (required) — Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T09:00:00.000Z\"`\n - `priority: integer, int32` (required) — Приоритет. Пример: `2`\n - `user_id: integer, int32` (required) — Идентификатор пользователя-создателя напоминания. Пример: `12`\n - `chat_id: integer, int32` (required) — Идентификатор чата, к которому привязано напоминание. Пример: `334`\n - `status: string` (required) — Статус напоминания\n Значения: `done` — Выполнено, `undone` — Активно\n - `created_at: date-time` (required) — Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-04T10:37:57.000Z\"`\n - `performer_ids: array of integer` (required) — Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные». Пример: `[12]`\n - `all_day: boolean` (required) — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` (required) — Дополнительные поля напоминания\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 22283,\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T09:00:00.000Z\",\n \"priority\": 2,\n \"user_id\": 12,\n \"chat_id\": 334,\n \"status\": \"undone\",\n \"created_at\": \"2020-06-04T10:37:57.000Z\",\n \"performer_ids\": [\n 12\n ],\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/tasks/{id}","summary":"Редактирование напоминания","scope":"tasks:update","plan":null,"auth":true,"paginated":false,"command":"pachca tasks update","docLink":"https://dev.pachca.com/api/tasks/update","describe":"# PUT /tasks/{id} — Редактирование напоминания\n\n> **Скоуп:** `tasks:update`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор напоминания\n\n## Тело запроса\n\n- `task: object` (required) — Собранный объект параметров обновляемого напоминания\n - `kind: string` — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` — Описание\n - `due_at: date-time` — Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).\n - `priority: integer, int32` — Приоритет: 1, 2 (важно) или 3 (очень важно).\n - `performer_ids: array of integer` — Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные»\n - `status: string` — Статус\n Значения: `done` — Выполнено, `undone` — Активно\n - `all_day: boolean` — Напоминание на весь день (без указания времени)\n - `done_at: date-time` — Дата и время выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля\n - `value: string` (required) — Устанавливаемое значение\n\n## Эквивалентная команда\n\n```bash\npachca tasks update 22283 \\\n --content=\"Забрать со склада 21 заказ\" \\\n --due-at=2020-06-05T12:00:00.000+03:00 \\\n --priority=2 \\\n --performer-ids=12 \\\n --status=done \\\n --no-all-day \\\n --done-at=2020-06-05T12:00:00.000Z \\\n --custom-properties='[{\"id\":78,\"value\":\"Синий склад\"}]' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/update\nПолная справка: `pachca api PUT /tasks/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/tasks/{id}","description":"Редактирование напоминания\n\nМетод для редактирования напоминания.\n\nДля редактирования напоминания вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры напоминания указываются в теле запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор напоминания","required":true,"schema":{"type":"integer","format":"int32","example":22283},"example":22283}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на обновление напоминания","required":["task"],"properties":{"task":{"type":"object","description":"Собранный объект параметров обновляемого напоминания","properties":{"kind":{"description":"Тип","default":"reminder","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).","example":"2020-06-05T12:00:00.000+03:00"},"priority":{"type":"integer","format":"int32","description":"Приоритет: 1, 2 (важно) или 3 (очень важно).","example":2},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"status":{"description":"Статус","example":"done","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"done_at":{"type":"string","format":"date-time","description":"Дата и время выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T12:00:00.000Z"},"custom_properties":{"type":"array","description":"Задаваемые дополнительные поля","items":{"type":"object","required":["id","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":78},"value":{"type":"string","description":"Устанавливаемое значение","example":"Синий склад"}}}}}}},"$ref":"#/components/schemas/TaskUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Напоминание","required":["id","kind","content","due_at","priority","user_id","chat_id","status","created_at","performer_ids","all_day","custom_properties"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор напоминания","example":22283},"kind":{"description":"Тип","example":"reminder","allOf":[{"type":"string","description":"Тип задачи","enum":["call","meeting","reminder","event","email"],"x-enum-descriptions":{"call":"Позвонить контакту","meeting":"Встреча","reminder":"Простое напоминание","event":"Событие","email":"Написать письмо"},"$ref":"#/components/schemas/TaskKind"}]},"content":{"type":"string","description":"Описание","example":"Забрать со склада 21 заказ"},"due_at":{"type":"string","format":"date-time","description":"Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-05T09:00:00.000Z","nullable":true},"priority":{"type":"integer","format":"int32","description":"Приоритет","example":2},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя-создателя напоминания","example":12},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, к которому привязано напоминание","example":334,"nullable":true},"status":{"description":"Статус напоминания","example":"undone","allOf":[{"type":"string","description":"Статус напоминания","enum":["done","undone"],"x-enum-descriptions":{"done":"Выполнено","undone":"Активно"},"$ref":"#/components/schemas/TaskStatus"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-04T10:37:57.000Z"},"performer_ids":{"type":"array","description":"Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные»","example":[12],"items":{"type":"integer","format":"int32"}},"all_day":{"type":"boolean","description":"Напоминание на весь день (без указания времени)","example":false},"custom_properties":{"type":"array","description":"Дополнительные поля напоминания","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}}},"$ref":"#/components/schemas/Task"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"tasks:update","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Редактирование напоминания\n\n**Метод**: `PUT`\n\n**Путь**: `/tasks/{id}`\n\n> **Скоуп:** `tasks:update`\n\nМетод для редактирования напоминания.\n\nДля редактирования напоминания вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры напоминания указываются в теле запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор напоминания\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `task: object` (required) — Собранный объект параметров обновляемого напоминания\n - `kind: string` — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` — Срок выполнения напоминания (ISO-8601) в формате YYYY-MM-DDThh:mm:ss.sssTZD. Если указано время 23:59:59.000, то напоминание будет создано на весь день (без указания времени).. Пример: `\"2020-06-05T12:00:00.000+03:00\"`\n - `priority: integer, int32` — Приоритет: 1, 2 (важно) или 3 (очень важно).. Пример: `2`\n - `performer_ids: array of integer` — Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные». Пример: `[12]`\n - `status: string` — Статус\n Значения: `done` — Выполнено, `undone` — Активно\n - `all_day: boolean` — Напоминание на весь день (без указания времени). Пример: `false`\n - `done_at: date-time` — Дата и время выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T12:00:00.000Z\"`\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `78`\n - `value: string` (required) — Устанавливаемое значение. Пример: `\"Синий склад\"`\n\n### Пример\n\n```json\n{\n \"task\": {\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T12:00:00.000+03:00\",\n \"priority\": 2,\n \"performer_ids\": [\n 12\n ],\n \"status\": \"done\",\n \"all_day\": false,\n \"done_at\": \"2020-06-05T12:00:00.000Z\",\n \"custom_properties\": [\n {\n \"id\": 78,\n \"value\": \"Синий склад\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/tasks/22283\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"task\": {\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T12:00:00.000+03:00\",\n \"priority\": 2,\n \"performer_ids\": [\n 12\n ],\n \"status\": \"done\",\n \"all_day\": false,\n \"done_at\": \"2020-06-05T12:00:00.000Z\",\n \"custom_properties\": [\n {\n \"id\": 78,\n \"value\": \"Синий склад\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Напоминание\n - `id: integer, int32` (required) — Идентификатор напоминания. Пример: `22283`\n - `kind: string` (required) — Тип\n Значения: `call` — Позвонить контакту, `meeting` — Встреча, `reminder` — Простое напоминание, `event` — Событие, `email` — Написать письмо\n - `content: string` (required) — Описание. Пример: `\"Забрать со склада 21 заказ\"`\n - `due_at: date-time` (required) — Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-05T09:00:00.000Z\"`\n - `priority: integer, int32` (required) — Приоритет. Пример: `2`\n - `user_id: integer, int32` (required) — Идентификатор пользователя-создателя напоминания. Пример: `12`\n - `chat_id: integer, int32` (required) — Идентификатор чата, к которому привязано напоминание. Пример: `334`\n - `status: string` (required) — Статус напоминания\n Значения: `done` — Выполнено, `undone` — Активно\n - `created_at: date-time` (required) — Дата и время создания напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-04T10:37:57.000Z\"`\n - `performer_ids: array of integer` (required) — Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные». Пример: `[12]`\n - `all_day: boolean` (required) — Напоминание на весь день (без указания времени). Пример: `false`\n - `custom_properties: array of object` (required) — Дополнительные поля напоминания\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 22283,\n \"kind\": \"reminder\",\n \"content\": \"Забрать со склада 21 заказ\",\n \"due_at\": \"2020-06-05T09:00:00.000Z\",\n \"priority\": 2,\n \"user_id\": 12,\n \"chat_id\": 334,\n \"status\": \"undone\",\n \"created_at\": \"2020-06-04T10:37:57.000Z\",\n \"performer_ids\": [\n 12\n ],\n \"all_day\": false,\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/tasks/{id}","summary":"Удаление напоминания","scope":"tasks:delete","plan":null,"auth":true,"paginated":false,"command":"pachca tasks delete","docLink":"https://dev.pachca.com/api/tasks/delete","describe":"# DELETE /tasks/{id} — Удаление напоминания\n\n> **Скоуп:** `tasks:delete`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор напоминания\n\n## Эквивалентная команда\n\n```bash\npachca tasks delete 22283 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/tasks/delete\nПолная справка: `pachca api DELETE /tasks/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/tasks/{id}","description":"Удаление напоминания\n\nМетод для удаления напоминания.\n\nДля удаления напоминания вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор напоминания","required":true,"schema":{"type":"integer","format":"int32","example":22283},"example":22283}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"tasks:delete","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление напоминания\n\n**Метод**: `DELETE`\n\n**Путь**: `/tasks/{id}`\n\n> **Скоуп:** `tasks:delete`\n\nМетод для удаления напоминания.\n\nДля удаления напоминания вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор напоминания\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/tasks/22283\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/threads","summary":"Список тредов","scope":"threads:read","plan":null,"auth":true,"paginated":true,"command":"pachca threads list","docLink":"https://dev.pachca.com/api/threads/list","describe":"# GET /threads — Список тредов\n\n> **Скоуп:** `threads:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `last_message_at_after` — query: Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `last_message_at_before` — query: Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca threads list \\\n --last-message-at-after=2025-01-01T00:00:00.000Z \\\n --last-message-at-before=2025-02-01T00:00:00.000Z \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/threads/list\nПолная справка: `pachca api GET /threads --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/threads","description":"Список тредов\n\nМетод для получения списка доступных тредов.\n\nВозвращаются треды, у которых вы являетесь участником чата треда либо чата, в котором был создан тред. Публичные чаты, в которых вы не состоите, в выдачу не попадают — чтобы такой тред попал в список, нужно быть участником чата треда или чата, в котором был создан тред.\n\nСортировка — по убыванию времени последнего сообщения в треде.","parameters":[{"name":"last_message_at_after","in":"query","description":"Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","required":false,"schema":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z"},"example":"2025-01-01T00:00:00.000Z","explode":false},{"name":"last_message_at_before","in":"query","description":"Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).","required":false,"schema":{"type":"string","format":"date-time","example":"2025-02-01T00:00:00.000Z"},"example":"2025-02-01T00:00:00.000Z","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Тред","required":["id","chat_id","message_id","message_chat_id","updated_at"],"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред)","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages))","example":2637266155},"message_id":{"type":"integer","format":"int64","description":"Идентификатор сообщения, к которому был создан тред","example":154332686},"message_chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата сообщения","example":2637266154},"updated_at":{"type":"string","format":"date-time","description":"Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2023-02-01T19:20:47.204Z"}},"$ref":"#/components/schemas/Thread"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"threads:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список тредов\n\n**Метод**: `GET`\n\n**Путь**: `/threads`\n\n> **Скоуп:** `threads:read`\n\nМетод для получения списка доступных тредов.\n\nВозвращаются треды, у которых вы являетесь участником чата треда либо чата, в котором был создан тред. Публичные чаты, в которых вы не состоите, в выдачу не попадают — чтобы такой тред попал в список, нужно быть участником чата треда или чата, в котором был создан тред.\n\nСортировка — по убыванию времени последнего сообщения в треде.\n\n## Параметры\n\n### Query параметры\n\n- `last_message_at_after: date-time` — Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `last_message_at_before: date-time` — Фильтрация по времени последнего сообщения в треде. Будут возвращены только те треды, время последнего сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/threads?last_message_at_after=2025-01-01T00:00:00.000Z&last_message_at_before=2025-02-01T00:00:00.000Z&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int64` (required) — Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред). Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages)). Пример: `2637266155`\n - `message_id: integer, int64` (required) — Идентификатор сообщения, к которому был создан тред. Пример: `154332686`\n - `message_chat_id: integer, int64` (required) — Идентификатор чата сообщения. Пример: `2637266154`\n - `updated_at: date-time` (required) — Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2023-02-01T19:20:47.204Z\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 265142,\n \"chat_id\": 2637266155,\n \"message_id\": 154332686,\n \"message_chat_id\": 2637266154,\n \"updated_at\": \"2023-02-01T19:20:47.204Z\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/threads/{id}","summary":"Информация о треде","scope":"threads:read","plan":null,"auth":true,"paginated":false,"command":"pachca threads get","docLink":"https://dev.pachca.com/api/threads/get","describe":"# GET /threads/{id} — Информация о треде\n\n> **Скоуп:** `threads:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор треда\n\n## Эквивалентная команда\n\n```bash\npachca threads get 265142 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/threads/get\nПолная справка: `pachca api GET /threads/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/threads/{id}","description":"Информация о треде\n\nМетод для получения информации о треде.\n\nДля получения треда вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор треда","required":true,"schema":{"type":"integer","format":"int32","example":265142},"example":265142}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Тред","required":["id","chat_id","message_id","message_chat_id","updated_at"],"properties":{"id":{"type":"integer","format":"int64","description":"Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред)","example":265142},"chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages))","example":2637266155},"message_id":{"type":"integer","format":"int64","description":"Идентификатор сообщения, к которому был создан тред","example":154332686},"message_chat_id":{"type":"integer","format":"int64","description":"Идентификатор чата сообщения","example":2637266154},"updated_at":{"type":"string","format":"date-time","description":"Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2023-02-01T19:20:47.204Z"}},"$ref":"#/components/schemas/Thread"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"threads:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о треде\n\n**Метод**: `GET`\n\n**Путь**: `/threads/{id}`\n\n> **Скоуп:** `threads:read`\n\nМетод для получения информации о треде.\n\nДля получения треда вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор треда\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/threads/265142\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Тред\n - `id: integer, int64` (required) — Идентификатор созданного треда (используется для отправки [новых комментариев](POST /messages) в тред). Пример: `265142`\n - `chat_id: integer, int64` (required) — Идентификатор чата треда (используется для отправки [новых комментариев](POST /messages) в тред и получения [списка комментариев](GET /messages)). Пример: `2637266155`\n - `message_id: integer, int64` (required) — Идентификатор сообщения, к которому был создан тред. Пример: `154332686`\n - `message_chat_id: integer, int64` (required) — Идентификатор чата сообщения. Пример: `2637266154`\n - `updated_at: date-time` (required) — Дата и время обновления треда (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2023-02-01T19:20:47.204Z\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 265142,\n \"chat_id\": 2637266155,\n \"message_id\": 154332686,\n \"message_chat_id\": 2637266154,\n \"updated_at\": \"2023-02-01T19:20:47.204Z\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/uploads","summary":"Получение подписи, ключа и других параметров","scope":"uploads:write","plan":null,"auth":true,"paginated":false,"command":"pachca files uploads","docLink":"https://dev.pachca.com/api/files/uploads","describe":"# POST /uploads — Получение подписи, ключа и других параметров\n\n> **Скоуп:** `uploads:write`\n\n## Эквивалентная команда\n\n```bash\npachca files uploads \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/files/uploads\nПолная справка: `pachca api POST /uploads --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/uploads","description":"Получение подписи, ключа и других параметров\n\nМетод для получения подписи, ключа и других параметров, необходимых для загрузки файла.\n\nДанный метод необходимо использовать для загрузки каждого файла.","parameters":[],"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Параметры для загрузки файла","required":["Content-Disposition","acl","policy","x-amz-credential","x-amz-algorithm","x-amz-date","x-amz-signature","key","direct_url"],"properties":{"Content-Disposition":{"type":"string","description":"Используемый заголовок (в данном запросе — attachment)","example":"attachment"},"acl":{"type":"string","description":"Уровень безопасности (в данном запросе — private)","example":"private"},"policy":{"type":"string","description":"Уникальная policy для загрузки файла","example":"eyJloNBpcmF0aW9uIjoiMjAyPi0xMi0wOFQwNjo1NzozNFHusCJjb82kaXRpb25zIjpbeyJidWNrZXQiOiJwYWNoY2EtcHJhYy11cGxvYWRzOu0sWyJzdGFydHMtd3l4aCIsIiRrZXkiLCJhdHRhY8hlcy9maWxlcy1xODUyMSJdLHsiQ29udGVudC1EaXNwb3NpdGlvbiI6ImF0dGFjaG1lbnQifSx2ImFjbCI3InByaXZhdGUifSx7IngtYW16LWNyZWRlbnRpYWwi2iIxNDIxNTVfc3RhcGx4LzIwMjIxMTI0L2J1LTFhL5MzL1F2czRfcmVxdWVzdCJ9LHsieC1hbXotYWxnb3JpdGhtIjytQVdTNC1ITUFDLVNIQTI1NiJ7LHsieC1hbXotZGF0ZSI6IjIwMjIxMTI0VDA2NTczNFoifV12"},"x-amz-credential":{"type":"string","description":"x-amz-credential для загрузки файла","example":"286471_server/20211122/kz-6x/s3/aws4_request"},"x-amz-algorithm":{"type":"string","description":"Используемый алгоритм (в данном запросе — AWS4-HMAC-SHA256)","example":"AWS4-HMAC-SHA256"},"x-amz-date":{"type":"string","description":"Уникальный x-amz-date для загрузки файла","example":"20211122T065734Z"},"x-amz-signature":{"type":"string","description":"Уникальная подпись для загрузки файла","example":"87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475"},"key":{"type":"string","description":"Уникальный ключ для загрузки файла","example":"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/${filename}"},"direct_url":{"type":"string","description":"Адрес для загрузки файла","example":"https://api.pachca.com/api/v3/direct_upload"}},"$ref":"#/components/schemas/UploadParams"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}}},"requirements":{"scope":"uploads:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Получение подписи, ключа и других параметров\n\n**Метод**: `POST`\n\n**Путь**: `/uploads`\n\n> **Скоуп:** `uploads:write`\n\nМетод для получения подписи, ключа и других параметров, необходимых для загрузки файла.\n\nДанный метод необходимо использовать для загрузки каждого файла.\n\n## Пример запроса\n\n```bash\ncurl -X POST \"https://api.pachca.com/api/shared/v1/uploads\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `Content-Disposition: string` (required) — Используемый заголовок (в данном запросе — attachment). Пример: `\"attachment\"`\n- `acl: string` (required) — Уровень безопасности (в данном запросе — private). Пример: `\"private\"`\n- `policy: string` (required) — Уникальная policy для загрузки файла. Пример: `\"eyJloNBpcmF0aW9uIjoiMjAyPi0xMi0wOFQwNjo1NzozNFHusCJjb82kaXRpb25zIjpbeyJidWNrZXQiOiJwYWNoY2EtcHJhYy11cGxvYWRzOu0sWyJzdGFydHMtd3l4aCIsIiRrZXkiLCJhdHRhY8hlcy9maWxlcy1xODUyMSJdLHsiQ29udGVudC1EaXNwb3NpdGlvbiI6ImF0dGFjaG1lbnQifSx2ImFjbCI3InByaXZhdGUifSx7IngtYW16LWNyZWRlbnRpYWwi2iIxNDIxNTVfc3RhcGx4LzIwMjIxMTI0L2J1LTFhL5MzL1F2czRfcmVxdWVzdCJ9LHsieC1hbXotYWxnb3JpdGhtIjytQVdTNC1ITUFDLVNIQTI1NiJ7LHsieC1hbXotZGF0ZSI6IjIwMjIxMTI0VDA2NTczNFoifV12\"`\n- `x-amz-credential: string` (required) — x-amz-credential для загрузки файла. Пример: `\"286471_server/20211122/kz-6x/s3/aws4_request\"`\n- `x-amz-algorithm: string` (required) — Используемый алгоритм (в данном запросе — AWS4-HMAC-SHA256). Пример: `\"AWS4-HMAC-SHA256\"`\n- `x-amz-date: string` (required) — Уникальный x-amz-date для загрузки файла. Пример: `\"20211122T065734Z\"`\n- `x-amz-signature: string` (required) — Уникальная подпись для загрузки файла. Пример: `\"87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475\"`\n- `key: string` (required) — Уникальный ключ для загрузки файла. Пример: `\"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/${filename}\"`\n- `direct_url: string` (required) — Адрес для загрузки файла. Пример: `\"https://api.pachca.com/api/v3/direct_upload\"`\n\n**Пример ответа:**\n\n```json\n{\n \"Content-Disposition\": \"attachment\",\n \"acl\": \"private\",\n \"policy\": \"eyJloNBpcmF0aW9uIjoiMjAyPi0xMi0wOFQwNjo1NzozNFHusCJjb82kaXRpb25zIjpbeyJidWNrZXQiOiJwYWNoY2EtcHJhYy11cGxvYWRzOu0sWyJzdGFydHMtd3l4aCIsIiRrZXkiLCJhdHRhY8hlcy9maWxlcy1xODUyMSJdLHsiQ29udGVudC1EaXNwb3NpdGlvbiI6ImF0dGFjaG1lbnQifSx2ImFjbCI3InByaXZhdGUifSx7IngtYW16LWNyZWRlbnRpYWwi2iIxNDIxNTVfc3RhcGx4LzIwMjIxMTI0L2J1LTFhL5MzL1F2czRfcmVxdWVzdCJ9LHsieC1hbXotYWxnb3JpdGhtIjytQVdTNC1ITUFDLVNIQTI1NiJ7LHsieC1hbXotZGF0ZSI6IjIwMjIxMTI0VDA2NTczNFoifV12\",\n \"x-amz-credential\": \"286471_server/20211122/kz-6x/s3/aws4_request\",\n \"x-amz-algorithm\": \"AWS4-HMAC-SHA256\",\n \"x-amz-date\": \"20211122T065734Z\",\n \"x-amz-signature\": \"87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475\",\n \"key\": \"attaches/files/93746/e354fd79-4f3e-4b5a-9c8d-1a2b3c4d5e6f/${filename}\",\n \"direct_url\": \"https://api.pachca.com/api/v3/direct_upload\"\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n"},{"method":"POST","path":"/users","summary":"Новый сотрудник","scope":"users:create","plan":null,"auth":true,"paginated":false,"command":"pachca users create","docLink":"https://dev.pachca.com/api/users/create","describe":"# POST /users — Новый сотрудник\n\n> **Скоуп:** `users:create`\n\n## Тело запроса\n\n- `user: object` (required)\n - `first_name: string` — Имя\n - `last_name: string` — Фамилия\n - `email: string` (required) — Электронная почта\n - `phone_number: string` — Телефон\n - `nickname: string` — Имя пользователя\n - `department: string` — Департамент\n - `title: string` — Должность\n - `role: string` — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (default: false) — Деактивация пользователя\n - `list_tags: array of string` — Массив тегов, привязываемых к сотруднику\n - `chat_ids: array of integer` — Идентификаторы чатов, в которые сотрудник будет добавлен сразу при создании. Для роли `guest` параметр обязателен и должен содержать ровно один активный чат.\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля\n - `value: string` (required) — Устанавливаемое значение\n- `skip_email_notify: boolean` (default: false) — Пропуск этапа отправки приглашения сотруднику. Сотруднику не будет отправлено письмо на электронную почту с приглашением создать аккаунт. Полезно при предварительном создании аккаунтов перед входом через SSO.\n\n## Эквивалентная команда\n\n```bash\npachca users create \\\n --first-name=Олег \\\n --last-name=Петров \\\n --email=olegp@example.com \\\n --phone-number=+79001234567 \\\n --nickname=olegpetrov \\\n --department=Продукт \\\n --title=CIO \\\n --role=user \\\n --list-tags=Product,Design \\\n --chat-ids=12345 \\\n --custom-properties='[{\"id\":1678,\"value\":\"Санкт-Петербург\"}]' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/create\nПолная справка: `pachca api POST /users --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/users","description":"Новый сотрудник\n\nМетод для создания нового сотрудника в вашей компании.\n\nВы можете заполнять дополнительные поля сотрудника, которые созданы в вашей компании. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).\n\nЧерез параметр `chat_ids` сотрудника можно сразу добавить в указанные чаты. Чтобы создать гостя, передайте `role: \"guest\"` — для этой роли `chat_ids` обязателен и должен содержать ровно один активный чат, в который у токена есть право добавлять участников. При нарушении правил гостевого доступа возвращается `400` с ошибкой по полю `chat_ids`.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на создание сотрудника","required":["user"],"properties":{"user":{"type":"object","required":["email"],"properties":{"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров"},"email":{"type":"string","description":"Электронная почта","example":"olegp@example.com"},"phone_number":{"type":"string","description":"Телефон","example":"+79001234567"},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"department":{"type":"string","description":"Департамент","example":"Продукт"},"title":{"type":"string","description":"Должность","example":"CIO"},"role":{"description":"Уровень доступа","example":"user","allOf":[{"type":"string","description":"Роль пользователя, допустимая при создании сотрудника. В отличие от редактирования, при создании можно назначить роль `guest` — в этом случае параметр `chat_ids` обязателен и должен содержать ровно один чат.","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserCreateRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","default":false,"example":false},"list_tags":{"type":"array","description":"Массив тегов, привязываемых к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"chat_ids":{"type":"array","description":"Идентификаторы чатов, в которые сотрудник будет добавлен сразу при создании. Для роли `guest` параметр обязателен и должен содержать ровно один активный чат.","example":[12345],"items":{"type":"integer","format":"int32"}},"custom_properties":{"type":"array","description":"Задаваемые дополнительные поля","items":{"type":"object","required":["id","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"value":{"type":"string","description":"Устанавливаемое значение","example":"Санкт-Петербург"}}}}}},"skip_email_notify":{"type":"boolean","description":"Пропуск этапа отправки приглашения сотруднику. Сотруднику не будет отправлено письмо на электронную почту с приглашением создать аккаунт. Полезно при предварительном создании аккаунтов перед входом через SSO.","default":false,"example":false}},"$ref":"#/components/schemas/UserCreateRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:create","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Новый сотрудник\n\n**Метод**: `POST`\n\n**Путь**: `/users`\n\n> **Скоуп:** `users:create`\n\nМетод для создания нового сотрудника в вашей компании.\n\nВы можете заполнять дополнительные поля сотрудника, которые созданы в вашей компании. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).\n\nЧерез параметр `chat_ids` сотрудника можно сразу добавить в указанные чаты. Чтобы создать гостя, передайте `role: \"guest\"` — для этой роли `chat_ids` обязателен и должен содержать ровно один активный чат, в который у токена есть право добавлять участников. При нарушении правил гостевого доступа возвращается `400` с ошибкой по полю `chat_ids`.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `user: object` (required)\n - `first_name: string` — Имя. Пример: `\"Олег\"`\n - `last_name: string` — Фамилия. Пример: `\"Петров\"`\n - `email: string` (required) — Электронная почта. Пример: `\"olegp@example.com\"`\n - `phone_number: string` — Телефон. Пример: `\"+79001234567\"`\n - `nickname: string` — Имя пользователя. Пример: `\"olegpetrov\"`\n - `department: string` — Департамент. Пример: `\"Продукт\"`\n - `title: string` — Должность. Пример: `\"CIO\"`\n - `role: string` — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (default: false) — Деактивация пользователя. Пример: `false`\n - `list_tags: array of string` — Массив тегов, привязываемых к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `chat_ids: array of integer` — Идентификаторы чатов, в которые сотрудник будет добавлен сразу при создании. Для роли `guest` параметр обязателен и должен содержать ровно один активный чат.. Пример: `[12345]`\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `value: string` (required) — Устанавливаемое значение. Пример: `\"Санкт-Петербург\"`\n- `skip_email_notify: boolean` (default: false) — Пропуск этапа отправки приглашения сотруднику. Сотруднику не будет отправлено письмо на электронную почту с приглашением создать аккаунт. Полезно при предварительном создании аккаунтов перед входом через SSO.. Пример: `false`\n\n### Пример\n\n```json\n{\n \"user\": {\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"nickname\": \"olegpetrov\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"user\",\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"chat_ids\": [\n 12345\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/users\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"user\": {\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"nickname\": \"olegpetrov\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"user\",\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"chat_ids\": [\n 12345\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сотрудник\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/users","summary":"Список сотрудников","scope":"users:read","plan":null,"auth":true,"paginated":true,"command":"pachca users list","docLink":"https://dev.pachca.com/api/users/list","describe":"# GET /users — Список сотрудников\n\n> **Скоуп:** `users:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `query` — query: Поисковая фраза для фильтрации результатов. Поиск работает по полям: `first_name` (имя), `last_name` (фамилия), `email` (электронная почта), `phone_number` (телефон) и `nickname` (никнейм).\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca users list \\\n --query=Олег \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/list\nПолная справка: `pachca api GET /users --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/users","description":"Список сотрудников\n\nМетод для получения актуального списка сотрудников вашей компании.","parameters":[{"name":"query","in":"query","description":"Поисковая фраза для фильтрации результатов. Поиск работает по полям: `first_name` (имя), `last_name` (фамилия), `email` (электронная почта), `phone_number` (телефон) и `nickname` (никнейм).","required":false,"schema":{"type":"string","example":"Олег"},"example":"Олег","explode":false},{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# Список сотрудников\n\n**Метод**: `GET`\n\n**Путь**: `/users`\n\n> **Скоуп:** `users:read`\n\nМетод для получения актуального списка сотрудников вашей компании.\n\n## Параметры\n\n### Query параметры\n\n- `query: string` — Поисковая фраза для фильтрации результатов. Поиск работает по полям: `first_name` (имя), `last_name` (фамилия), `email` (электронная почта), `phone_number` (телефон) и `nickname` (никнейм).\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/users?query=Олег&limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/users/{id}","summary":"Информация о сотруднике","scope":"users:read","plan":null,"auth":true,"paginated":false,"command":"pachca users get","docLink":"https://dev.pachca.com/api/users/get","describe":"# GET /users/{id} — Информация о сотруднике\n\n> **Скоуп:** `users:read`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users get 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/get\nПолная справка: `pachca api GET /users/{id} --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/users/{id}","description":"Информация о сотруднике\n\nМетод для получения информации о сотруднике.\n\nДля получения сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:read","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Информация о сотруднике\n\n**Метод**: `GET`\n\n**Путь**: `/users/{id}`\n\n> **Скоуп:** `users:read`\n\nМетод для получения информации о сотруднике.\n\nДля получения сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/users/12\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сотрудник\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/users/{id}","summary":"Редактирование сотрудника","scope":"users:update","plan":null,"auth":true,"paginated":false,"command":"pachca users update","docLink":"https://dev.pachca.com/api/users/update","describe":"# PUT /users/{id} — Редактирование сотрудника\n\n> **Скоуп:** `users:update`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор пользователя\n\n## Тело запроса\n\n- `user: object` (required) — Собранный объект параметров редактируемого сотрудника\n - `first_name: string` — Имя\n - `last_name: string` — Фамилия\n - `email: string` — Электронная почта\n - `phone_number: string` — Телефон\n - `nickname: string` — Имя пользователя\n - `department: string` — Департамент\n - `title: string` — Должность\n - `role: string` — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость\n - `suspended: boolean` (default: false) — Деактивация пользователя\n - `list_tags: array of string` — Массив тегов, привязываемых к сотруднику\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля\n - `value: string` (required) — Устанавливаемое значение\n\n## Эквивалентная команда\n\n```bash\npachca users update 12 \\\n --first-name=Олег \\\n --last-name=Петров \\\n --email=olegpetrov@example.com \\\n --phone-number=+79001234567 \\\n --nickname=olegpetrov \\\n --department=\"Отдел разработки\" \\\n --title=\"Старший разработчик\" \\\n --role=user \\\n --list-tags=Product \\\n --custom-properties='[{\"id\":1678,\"value\":\"Санкт-Петербург\"}]' \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/update\nПолная справка: `pachca api PUT /users/{id} --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/users/{id}","description":"Редактирование сотрудника\n\nМетод для редактирования сотрудника.\n\nДля редактирования сотрудника вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сотрудника указываются в теле запроса. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).","parameters":[{"name":"id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на редактирование сотрудника","required":["user"],"properties":{"user":{"type":"object","description":"Собранный объект параметров редактируемого сотрудника","properties":{"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров"},"email":{"type":"string","description":"Электронная почта","example":"olegpetrov@example.com"},"phone_number":{"type":"string","description":"Телефон","example":"+79001234567"},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"department":{"type":"string","description":"Департамент","example":"Отдел разработки"},"title":{"type":"string","description":"Должность","example":"Старший разработчик"},"role":{"description":"Уровень доступа","example":"user","allOf":[{"type":"string","description":"Роль пользователя, допустимая при редактировании сотрудника. Роль `guest` недоступна для установки через API при редактировании — назначить роль `guest` можно только при создании сотрудника (см. `UserCreateRole`).","enum":["admin","user","multi_guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость"},"$ref":"#/components/schemas/UserRoleInput"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","default":false,"example":false},"list_tags":{"type":"array","description":"Массив тегов, привязываемых к сотруднику","example":["Product"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Задаваемые дополнительные поля","items":{"type":"object","required":["id","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"value":{"type":"string","description":"Устанавливаемое значение","example":"Санкт-Петербург"}}}}}}},"$ref":"#/components/schemas/UserUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Сотрудник","required":["id","first_name","last_name","nickname","email","phone_number","department","title","role","suspended","invite_status","inviter_id","list_tags","custom_properties","user_status","bot","sso","created_at","last_activity_at","time_zone","image_url"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор пользователя","example":12},"first_name":{"type":"string","description":"Имя","example":"Олег"},"last_name":{"type":"string","description":"Фамилия","example":"Петров","nullable":true},"nickname":{"type":"string","description":"Имя пользователя","example":"olegpetrov"},"email":{"type":"string","description":"Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"olegp@example.com","nullable":true},"phone_number":{"type":"string","description":"Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.","example":"+79001234567","nullable":true},"department":{"type":"string","description":"Департамент","example":"Продукт","nullable":true},"title":{"type":"string","description":"Должность","example":"CIO","nullable":true},"role":{"description":"Уровень доступа","example":"admin","allOf":[{"type":"string","description":"Роль пользователя в системе","enum":["admin","user","multi_guest","guest"],"x-enum-descriptions":{"admin":"Администратор","user":"Сотрудник","multi_guest":"Мульти-гость","guest":"Гость"},"$ref":"#/components/schemas/UserRole"}]},"suspended":{"type":"boolean","description":"Деактивация пользователя","example":false},"invite_status":{"description":"Статус приглашения","example":"confirmed","allOf":[{"type":"string","description":"Статус приглашения пользователя","enum":["confirmed","sent"],"x-enum-descriptions":{"confirmed":"Принято","sent":"Отправлено"},"$ref":"#/components/schemas/InviteStatus"}]},"inviter_id":{"type":"integer","format":"int32","description":"Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.","example":185,"nullable":true},"list_tags":{"type":"array","description":"Массив тегов, привязанных к сотруднику","example":["Product","Design"],"items":{"type":"string"}},"custom_properties":{"type":"array","description":"Дополнительные поля сотрудника","items":{"type":"object","description":"Дополнительное поле","required":["id","name","data_type","value"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор поля","example":1678},"name":{"type":"string","description":"Название поля","example":"Город"},"data_type":{"description":"Тип поля","example":"string","allOf":[{"type":"string","description":"Тип данных дополнительного поля","enum":["string","number","date","link"],"x-enum-descriptions":{"string":"Строковое значение","number":"Числовое значение","date":"Дата","link":"Ссылка"},"$ref":"#/components/schemas/CustomPropertyDataType"}]},"value":{"type":"string","description":"Значение","example":"Санкт-Петербург"}},"$ref":"#/components/schemas/CustomProperty"}},"user_status":{"type":"object","description":"Статус","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]},"bot":{"type":"boolean","description":"Является ботом","example":false},"sso":{"type":"boolean","description":"Использует ли пользователь SSO","example":false},"created_at":{"type":"string","format":"date-time","description":"Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2020-06-08T09:32:57.000Z"},"last_activity_at":{"type":"string","format":"date-time","description":"Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-01-20T13:40:07.000Z","nullable":true},"time_zone":{"type":"string","description":"Часовой пояс пользователя","example":"Europe/Moscow","nullable":true},"image_url":{"type":"string","description":"Ссылка на скачивание аватарки пользователя","example":"https://app.pachca.com/users/12/photo.jpg","nullable":true}},"$ref":"#/components/schemas/User"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:update","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Редактирование сотрудника\n\n**Метод**: `PUT`\n\n**Путь**: `/users/{id}`\n\n> **Скоуп:** `users:update`\n\nМетод для редактирования сотрудника.\n\nДля редактирования сотрудника вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сотрудника указываются в теле запроса. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `user: object` (required) — Собранный объект параметров редактируемого сотрудника\n - `first_name: string` — Имя. Пример: `\"Олег\"`\n - `last_name: string` — Фамилия. Пример: `\"Петров\"`\n - `email: string` — Электронная почта. Пример: `\"olegpetrov@example.com\"`\n - `phone_number: string` — Телефон. Пример: `\"+79001234567\"`\n - `nickname: string` — Имя пользователя. Пример: `\"olegpetrov\"`\n - `department: string` — Департамент. Пример: `\"Отдел разработки\"`\n - `title: string` — Должность. Пример: `\"Старший разработчик\"`\n - `role: string` — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость\n - `suspended: boolean` (default: false) — Деактивация пользователя. Пример: `false`\n - `list_tags: array of string` — Массив тегов, привязываемых к сотруднику. Пример: `[\"Product\"]`\n - `custom_properties: array of object` — Задаваемые дополнительные поля\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `value: string` (required) — Устанавливаемое значение. Пример: `\"Санкт-Петербург\"`\n\n### Пример\n\n```json\n{\n \"user\": {\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"email\": \"olegpetrov@example.com\",\n \"phone_number\": \"+79001234567\",\n \"nickname\": \"olegpetrov\",\n \"department\": \"Отдел разработки\",\n \"title\": \"Старший разработчик\",\n \"role\": \"user\",\n \"list_tags\": [\n \"Product\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/users/12\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"user\": {\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"email\": \"olegpetrov@example.com\",\n \"phone_number\": \"+79001234567\",\n \"nickname\": \"olegpetrov\",\n \"department\": \"Отдел разработки\",\n \"title\": \"Старший разработчик\",\n \"role\": \"user\",\n \"list_tags\": [\n \"Product\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"value\": \"Санкт-Петербург\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Сотрудник\n - `id: integer, int32` (required) — Идентификатор пользователя. Пример: `12`\n - `first_name: string` (required) — Имя. Пример: `\"Олег\"`\n - `last_name: string` (required) — Фамилия. Пример: `\"Петров\"`\n - `nickname: string` (required) — Имя пользователя. Пример: `\"olegpetrov\"`\n - `email: string` (required) — Электронная почта. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"olegp@example.com\"`\n - `phone_number: string` (required) — Телефон. Возвращает `null` для ботов без права просмотра персональных данных, а также при запросе данных другого пользователя ботом, для которого скрыты персональные данные сотрудников.. Пример: `\"+79001234567\"`\n - `department: string` (required) — Департамент. Пример: `\"Продукт\"`\n - `title: string` (required) — Должность. Пример: `\"CIO\"`\n - `role: string` (required) — Уровень доступа\n Значения: `admin` — Администратор, `user` — Сотрудник, `multi_guest` — Мульти-гость, `guest` — Гость\n - `suspended: boolean` (required) — Деактивация пользователя. Пример: `false`\n - `invite_status: string` (required) — Статус приглашения\n Значения: `confirmed` — Принято, `sent` — Отправлено\n - `inviter_id: integer, int32` (required) — Идентификатор сотрудника, который пригласил данного сотрудника. Возвращает `null`, если сотрудник зарегистрировался самостоятельно или если пригласивший сотрудник был удалён.. Пример: `185`\n - `list_tags: array of string` (required) — Массив тегов, привязанных к сотруднику. Пример: `[\"Product\",\"Design\"]`\n - `custom_properties: array of object` (required) — Дополнительные поля сотрудника\n - `id: integer, int32` (required) — Идентификатор поля. Пример: `1678`\n - `name: string` (required) — Название поля. Пример: `\"Город\"`\n - `data_type: string` (required) — Тип поля\n Значения: `string` — Строковое значение, `number` — Числовое значение, `date` — Дата, `link` — Ссылка\n - `value: string` (required) — Значение. Пример: `\"Санкт-Петербург\"`\n - `user_status: object` (required) — Статус\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n - `bot: boolean` (required) — Является ботом. Пример: `false`\n - `sso: boolean` (required) — Использует ли пользователь SSO. Пример: `false`\n - `created_at: date-time` (required) — Дата создания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2020-06-08T09:32:57.000Z\"`\n - `last_activity_at: date-time` (required) — Дата последней активности пользователя (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-01-20T13:40:07.000Z\"`\n - `time_zone: string` (required) — Часовой пояс пользователя. Пример: `\"Europe/Moscow\"`\n - `image_url: string` (required) — Ссылка на скачивание аватарки пользователя. Пример: `\"https://app.pachca.com/users/12/photo.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"id\": 12,\n \"first_name\": \"Олег\",\n \"last_name\": \"Петров\",\n \"nickname\": \"olegpetrov\",\n \"email\": \"olegp@example.com\",\n \"phone_number\": \"+79001234567\",\n \"department\": \"Продукт\",\n \"title\": \"CIO\",\n \"role\": \"admin\",\n \"suspended\": false,\n \"invite_status\": \"confirmed\",\n \"inviter_id\": 185,\n \"list_tags\": [\n \"Product\",\n \"Design\"\n ],\n \"custom_properties\": [\n {\n \"id\": 1678,\n \"name\": \"Город\",\n \"data_type\": \"string\",\n \"value\": \"Санкт-Петербург\"\n }\n ],\n \"user_status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n },\n \"bot\": false,\n \"sso\": false,\n \"created_at\": \"2020-06-08T09:32:57.000Z\",\n \"last_activity_at\": \"2025-01-20T13:40:07.000Z\",\n \"time_zone\": \"Europe/Moscow\",\n \"image_url\": \"https://app.pachca.com/users/12/photo.jpg\"\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/users/{id}","summary":"Удаление сотрудника","scope":"users:delete","plan":null,"auth":true,"paginated":false,"command":"pachca users delete","docLink":"https://dev.pachca.com/api/users/delete","describe":"# DELETE /users/{id} — Удаление сотрудника\n\n> **Скоуп:** `users:delete`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users delete 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/delete\nПолная справка: `pachca api DELETE /users/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/users/{id}","description":"Удаление сотрудника\n\nМетод для удаления сотрудника.\n\nДля удаления сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.","parameters":[{"name":"id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"users:delete","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Удаление сотрудника\n\n**Метод**: `DELETE`\n\n**Путь**: `/users/{id}`\n\n> **Скоуп:** `users:delete`\n\nМетод для удаления сотрудника.\n\nДля удаления сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.\n\n## Параметры\n\n### Path параметры\n\n- `id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/users/12\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/users/{user_id}/avatar","summary":"Загрузка аватара сотрудника","scope":"user_avatar:write","plan":null,"auth":true,"paginated":false,"command":"pachca users update-avatar","docLink":"https://dev.pachca.com/api/users/update-avatar","describe":"# PUT /users/{user_id}/avatar — Загрузка аватара сотрудника\n\n> **Скоуп:** `user_avatar:write`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Тело запроса\n\n- `image: binary` (required) — Файл изображения для аватара\n\n## Эквивалентная команда\n\n```bash\npachca users update-avatar 12 \\\n --file=./image.jpg \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/update-avatar\nПолная справка: `pachca api PUT /users/{user_id}/avatar --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/users/{user_id}/avatar","description":"Загрузка аватара сотрудника\n\nМетод для загрузки или обновления аватара сотрудника. Файл передается в формате `multipart/form-data`.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["image"],"properties":{"image":{"type":"string","format":"binary","description":"Файл изображения для аватара"}}}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Данные аватара","required":["image_url"],"properties":{"image_url":{"type":"string","description":"URL аватара","example":"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg"}},"$ref":"#/components/schemas/AvatarData"}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_avatar:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Загрузка аватара сотрудника\n\n**Метод**: `PUT`\n\n**Путь**: `/users/{user_id}/avatar`\n\n> **Скоуп:** `user_avatar:write`\n\nМетод для загрузки или обновления аватара сотрудника. Файл передается в формате `multipart/form-data`.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `multipart/form-data`\n\n### Схема\n\n- `image: binary` (required) — Файл изображения для аватара\n\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/users/12/avatar\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -F \"image=@filename.png\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Данные аватара\n - `image_url: string` (required) — URL аватара. Пример: `\"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"image_url\": \"https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg\"\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/users/{user_id}/avatar","summary":"Удаление аватара сотрудника","scope":"user_avatar:write","plan":null,"auth":true,"paginated":false,"command":"pachca users remove-avatar","docLink":"https://dev.pachca.com/api/users/remove-avatar","describe":"# DELETE /users/{user_id}/avatar — Удаление аватара сотрудника\n\n> **Скоуп:** `user_avatar:write`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users remove-avatar 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/remove-avatar\nПолная справка: `pachca api DELETE /users/{user_id}/avatar --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/users/{user_id}/avatar","description":"Удаление аватара сотрудника\n\nМетод для удаления аватара сотрудника.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"anyOf":[{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"},{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}]}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_avatar:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Удаление аватара сотрудника\n\n**Метод**: `DELETE`\n\n**Путь**: `/users/{user_id}/avatar`\n\n> **Скоуп:** `user_avatar:write`\n\nМетод для удаления аватара сотрудника.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/users/12/avatar\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n**anyOf** - один из вариантов:\n\n- **ApiError**: Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)\n - `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n- **OAuthError**: Ошибка OAuth авторизации (используется для 401 и 403)\n - `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n - `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/users/{user_id}/status","summary":"Статус сотрудника","scope":"user_status:read","plan":null,"auth":true,"paginated":false,"command":"pachca users get-status","docLink":"https://dev.pachca.com/api/users/get-status","describe":"# GET /users/{user_id}/status — Статус сотрудника\n\n> **Скоуп:** `user_status:read`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users get-status 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/get-status\nПолная справка: `pachca api GET /users/{user_id}/status --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/users/{user_id}/status","description":"Статус сотрудника\n\nМетод для получения информации о статусе сотрудника.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","nullable":true,"allOf":[{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}]}}}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_status:read","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Статус сотрудника\n\n**Метод**: `GET`\n\n**Путь**: `/users/{user_id}/status`\n\n> **Скоуп:** `user_status:read`\n\nМетод для получения информации о статусе сотрудника.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/users/12/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Статус пользователя\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n }\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"PUT","path":"/users/{user_id}/status","summary":"Новый статус сотрудника","scope":"user_status:write","plan":null,"auth":true,"paginated":false,"command":"pachca users update-status","docLink":"https://dev.pachca.com/api/users/update-status","describe":"# PUT /users/{user_id}/status — Новый статус сотрудника\n\n> **Скоуп:** `user_status:write`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Тело запроса\n\n- `status: object` (required)\n - `emoji: string` (required) — Emoji символ статуса\n - `title: string` (required) — Текст статуса\n - `expires_at: date-time` — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ\n - `is_away: boolean` — Режим «Нет на месте»\n - `away_message: string` (max length: 1024) — Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.\n\n## Эквивалентная команда\n\n```bash\npachca users update-status 12 \\\n --emoji=🎮 \\\n --title=\"Очень занят\" \\\n --expires-at=2024-04-08T10:00:00.000Z \\\n --is-away \\\n --away-message=\"Вернусь после 15:00\" \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/update-status\nПолная справка: `pachca api PUT /users/{user_id}/status --docs` · схема: `--spec`\n","spec":{"method":"PUT","path":"/users/{user_id}/status","description":"Новый статус сотрудника\n\nМетод для установки нового статуса сотруднику.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Запрос на установку статуса","required":["status"],"properties":{"status":{"type":"object","required":["emoji","title"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z"},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":true},"away_message":{"type":"string","description":"Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.","example":"Вернусь после 15:00","maxLength":1024}}}},"$ref":"#/components/schemas/StatusUpdateRequest"}}}},"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными","required":["data"],"properties":{"data":{"type":"object","description":"Статус пользователя","required":["emoji","title","expires_at","is_away","away_message"],"properties":{"emoji":{"type":"string","description":"Emoji символ статуса","example":"🎮"},"title":{"type":"string","description":"Текст статуса","example":"Очень занят"},"expires_at":{"type":"string","format":"date-time","description":"Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-04-08T10:00:00.000Z","nullable":true},"is_away":{"type":"boolean","description":"Режим «Нет на месте»","example":false},"away_message":{"type":"object","description":"Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.","required":["text"],"nullable":true,"properties":{"text":{"type":"string","description":"Текст сообщения","example":"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov."}}}},"$ref":"#/components/schemas/UserStatus"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_status:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Новый статус сотрудника\n\n**Метод**: `PUT`\n\n**Путь**: `/users/{user_id}/status`\n\n> **Скоуп:** `user_status:write`\n\nМетод для установки нового статуса сотруднику.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `status: object` (required)\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` — Режим «Нет на месте». Пример: `true`\n - `away_message: string` (max length: 1024) — Текст сообщения при режиме «Нет на месте». Отображается в профиле и при личных сообщениях/упоминаниях.. Пример: `\"Вернусь после 15:00\"`\n\n### Пример\n\n```json\n{\n \"status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": true,\n \"away_message\": \"Вернусь после 15:00\"\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl -X PUT \"https://api.pachca.com/api/shared/v1/users/12/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"status\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": true,\n \"away_message\": \"Вернусь после 15:00\"\n }\n}'\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: object` (required) — Статус пользователя\n - `emoji: string` (required) — Emoji символ статуса. Пример: `\"🎮\"`\n - `title: string` (required) — Текст статуса. Пример: `\"Очень занят\"`\n - `expires_at: date-time` (required) — Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-04-08T10:00:00.000Z\"`\n - `is_away: boolean` (required) — Режим «Нет на месте». Пример: `false`\n - `away_message: object` (required) — Сообщение при режиме «Нет на месте». Отображается в профиле пользователя, а также при отправке ему личного сообщения или упоминании в чате.\n - `text: string` (required) — Текст сообщения. Пример: `\"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": {\n \"emoji\": \"🎮\",\n \"title\": \"Очень занят\",\n \"expires_at\": \"2024-04-08T10:00:00.000Z\",\n \"is_away\": false,\n \"away_message\": {\n \"text\": \"Я в отпуске до 15 апреля. По срочным вопросам обращайтесь к @ivanov.\"\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/users/{user_id}/status","summary":"Удаление статуса сотрудника","scope":"user_status:write","plan":null,"auth":true,"paginated":false,"command":"pachca users remove-status","docLink":"https://dev.pachca.com/api/users/remove-status","describe":"# DELETE /users/{user_id}/status — Удаление статуса сотрудника\n\n> **Скоуп:** `user_status:write`\n\n## Параметры\n\n- `user_id` — путь (обязательный): Идентификатор пользователя\n\n## Эквивалентная команда\n\n```bash\npachca users remove-status 12 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/users/remove-status\nПолная справка: `pachca api DELETE /users/{user_id}/status --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/users/{user_id}/status","description":"Удаление статуса сотрудника\n\nМетод для удаления статуса сотрудника.","parameters":[{"name":"user_id","in":"path","description":"Идентификатор пользователя","required":true,"schema":{"type":"integer","format":"int32","example":12},"example":12}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"user_status:write","scopeRoles":["owner","admin"]},"paginated":false},"docs":"# Удаление статуса сотрудника\n\n**Метод**: `DELETE`\n\n**Путь**: `/users/{user_id}/status`\n\n> **Скоуп:** `user_status:write`\n\nМетод для удаления статуса сотрудника.\n\n## Параметры\n\n### Path параметры\n\n- `user_id: integer, int32` (required) — Идентификатор пользователя\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/users/12/status\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"POST","path":"/views/open","summary":"Открытие представления","scope":"views:write","plan":null,"auth":true,"paginated":false,"command":"pachca views open","docLink":"https://dev.pachca.com/api/views/open","describe":"# POST /views/open — Открытие представления\n\n> **Скоуп:** `views:write`\n\n## Тело запроса\n\n- `type: string` (required) — Способ открытия представления\n Значения: `modal` — Модальное окно\n- `trigger_id: string` (required) — Уникальный идентификатор события (полученный, например, в исходящем вебхуке о нажатии кнопки)\n- `private_metadata: string` (max length: 3000) — Необязательная строка, которая будет отправлена в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для передачи в формате `JSON` какой то дополнительной информации вместе с заполненной пользователем формой.\n- `callback_id: string` (max length: 255) — Необязательный идентификатор для распознавания этого представления, который будет отправлен в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для понимания, какую форму должен был заполнить пользователь.\n- `view: object` (required) — Собранный объект представления\n - `title: string` (required, max length: 24) — Заголовок представления\n - `close_text: string` (default: Отменить, max length: 24) — Текст кнопки закрытия представления. Отображается только в десктоп-вебе. В мобильных приложениях (iOS/Android) кнопка закрытия — это крестик в шапке, и заданный текст там не показывается.\n - `submit_text: string` (default: Отправить, max length: 24) — Текст кнопки отправки формы\n - `blocks: array (union)` (required, max items: 100) — Массив блоков представления\n **Возможные типы элементов:**\n\n - **ViewBlockHeader**: Блок header — заголовок\n - `type: string` (required) — Тип блока\n Значения: `header` — Для заголовков всегда header\n - `text: string` (required, max length: 150) — Текст заголовка\n - **ViewBlockPlainText**: Блок plain_text — обычный текст\n - `type: string` (required) — Тип блока\n Значения: `plain_text` — Для обычного текста всегда plain_text\n - `text: string` (required, max length: 12000) — Текст\n - **ViewBlockMarkdown**: Блок markdown — форматированный текст\n - `type: string` (required) — Тип блока\n Значения: `markdown` — Для форматированного текста всегда markdown\n - `text: string` (required, max length: 12000) — Текст\n - **ViewBlockDivider**: Блок divider — разделитель\n - `type: string` (required) — Тип блока\n Значения: `divider` — Для разделителя всегда divider\n - **ViewBlockInput**: Блок input — текстовое поле ввода\n - `type: string` (required) — Тип блока\n Значения: `input` — Для текстового поля всегда input\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `placeholder: string` (max length: 150) — Подсказка внутри поля ввода, пока оно пустое\n - `multiline: boolean` (default: false) — Многострочное поле\n - `initial_value: string` (max length: 3000) — Начальное значение в поле\n - `min_length: integer, int32` (min: 0, max: 3000) — Минимальная длина текста, который должен написать пользователь. Если пользователь напишет меньше, он получит ошибку.\n - `max_length: integer, int32` (min: 1, max: 3000) — Максимальная длина текста, который должен написать пользователь. Если пользователь напишет больше, он получит ошибку.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockSelect**: Блок select — выпадающий список\n - `type: string` (required) — Тип блока\n Значения: `select` — Для выпадающего списка всегда select\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к выпадающему списку\n - `options: array of object` (max items: 100) — Массив доступных пунктов в выпадающем списке\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `selected: boolean` — Изначально выбранный пункт. Только один пункт может быть выбран.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под выпадающим списком серым цветом\n - **ViewBlockRadio**: Блок radio — радиокнопки\n - `type: string` (required) — Тип блока\n Значения: `radio` — Для радиокнопок всегда radio\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к группе радиокнопок\n - `options: array of object` (max items: 10) — Массив радиокнопок\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `description: string` (max length: 75) — Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом\n - `selected: boolean` — Изначально выбранный пункт. Только один пункт может быть выбран.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под группой радиокнопок серым цветом\n - **ViewBlockCheckbox**: Блок checkbox — чекбоксы\n - `type: string` (required) — Тип блока\n Значения: `checkbox` — Для чекбоксов всегда checkbox\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к группе чекбоксов\n - `options: array of object` (max items: 10) — Массив чекбоксов\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `description: string` (max length: 75) — Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом\n - `checked: boolean` — Изначально выбранный пункт\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под группой чекбоксов серым цветом\n - **ViewBlockDate**: Блок date — выбор даты\n - `type: string` (required) — Тип блока\n Значения: `date` — Для выбора даты всегда date\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `initial_date: date` — Начальное значение в поле в формате YYYY-MM-DD\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockTime**: Блок time — выбор времени\n - `type: string` (required) — Тип блока\n Значения: `time` — Для выбора времени всегда time\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `initial_time: string, time` — Начальное значение в поле в формате HH:mm\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockFileInput**: Блок file_input — загрузка файлов\n - `type: string` (required) — Тип блока\n Значения: `file_input` — Для загрузки файлов всегда file_input\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `filetypes: array of string` — Массив допустимых расширений файлов, указанные в виде строк (например, [\"png\",\"jpg\",\"gif\"]). Если это поле не указано, все расширения файлов будут приняты.\n - `max_files: integer, int32` (default: 10, min: 1, max: 10) — Максимальное количество файлов, которое может загрузить пользователь в это поле.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n\n## Эквивалентная команда\n\n```bash\npachca views open \\\n --title=\"Уведомление об отпуске\" \\\n --close-text=Закрыть \\\n --submit-text=\"Отправить заявку\" \\\n --blocks='[{\"type\":\"header\",\"text\":\"Основная информация\"},{\"type\":\"plain_text\",\"text\":\"Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.\"},{\"type\":\"markdown\",\"text\":\"Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)\"},{\"type\":\"divider\"},{\"type\":\"input\",\"name\":\"info\",\"label\":\"Описание отпуска\",\"placeholder\":\"Куда собираетесь и что будете делать\",\"multiline\":true,\"initial_value\":\"Начальный текст\",\"min_length\":10,\"max_length\":500,\"required\":true,\"hint\":\"Возможно вам подскаджут, какие места лучше посетить\"},{\"type\":\"select\",\"name\":\"team\",\"label\":\"Выберите команду\",\"options\":[{\"text\":\"Ничего\",\"value\":\"nothing\",\"selected\":true}],\"hint\":\"Выберите одну из команд\"},{\"type\":\"radio\",\"name\":\"accessibility\",\"label\":\"Доступность\",\"options\":[{\"text\":\"Ничего\",\"value\":\"nothing\",\"description\":\"Каждый день бот будет присылать список новых задач в вашей команде\",\"selected\":true}],\"required\":true,\"hint\":\"Если вы не планируете выходить на связь, то выберите вариант Ничего\"},{\"type\":\"checkbox\",\"name\":\"newsletters\",\"label\":\"Рассылки\",\"options\":[{\"text\":\"Ничего\",\"value\":\"nothing\",\"description\":\"Каждый день бот будет присылать список новых задач в вашей команде\",\"checked\":true}],\"hint\":\"Выберите интересующие вас рассылки\"},{\"type\":\"date\",\"name\":\"date_start\",\"label\":\"Дата начала отпуска\",\"initial_date\":\"2025-07-01\",\"required\":true,\"hint\":\"Укажите дату начала отпуска\"},{\"type\":\"time\",\"name\":\"newsletter_time\",\"label\":\"Время рассылки\",\"initial_time\":\"11:00\",\"hint\":\"Укажите, в какое время присылать выбранные рассылки\"},{\"type\":\"file_input\",\"name\":\"request_doc\",\"label\":\"Заявление\",\"filetypes\":[\"pdf\",\"jpg\",\"png\"],\"max_files\":1,\"required\":true,\"hint\":\"Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)\"}]' \\\n --type=modal \\\n --trigger-id=791a056b-006c-49dd-834b-c633fde52fe8 \\\n --private-metadata=\"{\"timeoff_id\":4378}\" \\\n --callback-id=timeoff_reguest_form \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/views/open\nПолная справка: `pachca api POST /views/open --docs` · схема: `--spec`\n","spec":{"method":"POST","path":"/views/open","description":"Открытие представления\n\nМетод для открытия модального окна с представлением для пользователя.\n\nЧтобы открыть модальное окно с представлением, ваше приложение должно иметь действительный, неистекший `trigger_id`.","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Представление","required":["type","trigger_id","view"],"properties":{"type":{"type":"string","description":"Способ открытия представления","enum":["modal"],"x-enum-descriptions":{"modal":"Модальное окно"},"example":"modal"},"trigger_id":{"type":"string","description":"Уникальный идентификатор события (полученный, например, в исходящем вебхуке о нажатии кнопки)","example":"791a056b-006c-49dd-834b-c633fde52fe8"},"private_metadata":{"type":"string","description":"Необязательная строка, которая будет отправлена в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для передачи в формате `JSON` какой то дополнительной информации вместе с заполненной пользователем формой.","example":"{\"timeoff_id\":4378}","maxLength":3000},"callback_id":{"type":"string","description":"Необязательный идентификатор для распознавания этого представления, который будет отправлен в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для понимания, какую форму должен был заполнить пользователь.","example":"timeoff_reguest_form","maxLength":255},"view":{"type":"object","description":"Собранный объект представления","required":["title","blocks"],"properties":{"title":{"type":"string","description":"Заголовок представления","example":"Уведомление об отпуске","maxLength":24},"close_text":{"type":"string","description":"Текст кнопки закрытия представления. Отображается только в десктоп-вебе. В мобильных приложениях (iOS/Android) кнопка закрытия — это крестик в шапке, и заданный текст там не показывается.","default":"Отменить","example":"Закрыть","maxLength":24},"submit_text":{"type":"string","description":"Текст кнопки отправки формы","default":"Отправить","example":"Отправить заявку","maxLength":24},"blocks":{"type":"array","description":"Массив блоков представления","maxItems":100,"items":{"description":"Union-тип для всех возможных блоков представления","anyOf":[{"type":"object","description":"Блок header — заголовок","required":["type","text"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["header"],"x-enum-descriptions":{"header":"Для заголовков всегда header"},"example":"header"},"text":{"type":"string","description":"Текст заголовка","example":"Основная информация","maxLength":150}},"$ref":"#/components/schemas/ViewBlockHeader"},{"type":"object","description":"Блок plain_text — обычный текст","required":["type","text"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["plain_text"],"x-enum-descriptions":{"plain_text":"Для обычного текста всегда plain_text"},"example":"plain_text"},"text":{"type":"string","description":"Текст","example":"Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.","maxLength":12000}},"$ref":"#/components/schemas/ViewBlockPlainText"},{"type":"object","description":"Блок markdown — форматированный текст","required":["type","text"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["markdown"],"x-enum-descriptions":{"markdown":"Для форматированного текста всегда markdown"},"example":"markdown"},"text":{"type":"string","description":"Текст","example":"Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)","maxLength":12000}},"$ref":"#/components/schemas/ViewBlockMarkdown"},{"type":"object","description":"Блок divider — разделитель","required":["type"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["divider"],"x-enum-descriptions":{"divider":"Для разделителя всегда divider"},"example":"divider"}},"$ref":"#/components/schemas/ViewBlockDivider"},{"type":"object","description":"Блок input — текстовое поле ввода","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["input"],"x-enum-descriptions":{"input":"Для текстового поля всегда input"},"example":"input"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем значения","example":"info","maxLength":255},"label":{"type":"string","description":"Подпись к полю","example":"Описание отпуска","maxLength":150},"placeholder":{"type":"string","description":"Подсказка внутри поля ввода, пока оно пустое","example":"Куда собираетесь и что будете делать","maxLength":150},"multiline":{"type":"boolean","description":"Многострочное поле","default":false,"example":true},"initial_value":{"type":"string","description":"Начальное значение в поле","example":"Начальный текст","maxLength":3000},"min_length":{"type":"integer","format":"int32","description":"Минимальная длина текста, который должен написать пользователь. Если пользователь напишет меньше, он получит ошибку.","example":10,"minimum":0,"maximum":3000},"max_length":{"type":"integer","format":"int32","description":"Максимальная длина текста, который должен написать пользователь. Если пользователь напишет больше, он получит ошибку.","example":500,"minimum":1,"maximum":3000},"required":{"type":"boolean","description":"Обязательность","default":false,"example":true},"hint":{"type":"string","description":"Подсказка, которая отображается под полем серым цветом","example":"Возможно вам подскаджут, какие места лучше посетить","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockInput"},{"type":"object","description":"Блок select — выпадающий список","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["select"],"x-enum-descriptions":{"select":"Для выпадающего списка всегда select"},"example":"select"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора","example":"team","maxLength":255},"label":{"type":"string","description":"Подпись к выпадающему списку","example":"Выберите команду","maxLength":150},"options":{"type":"array","description":"Массив доступных пунктов в выпадающем списке","maxItems":100,"items":{"type":"object","description":"Пункт выпадающего списка (select). В отличие от radio/checkbox, у пункта select нет подзаголовка `description` — веб его не отображает.","required":["text","value"],"properties":{"text":{"type":"string","description":"Отображаемый текст","example":"Ничего","maxLength":75},"value":{"type":"string","description":"Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта","example":"nothing","maxLength":150},"selected":{"type":"boolean","description":"Изначально выбранный пункт. Только один пункт может быть выбран.","example":true}},"$ref":"#/components/schemas/ViewBlockSelectOption"}},"required":{"type":"boolean","description":"Обязательность","default":false,"example":false},"hint":{"type":"string","description":"Подсказка, которая отображается под выпадающим списком серым цветом","example":"Выберите одну из команд","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockSelect"},{"type":"object","description":"Блок radio — радиокнопки","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["radio"],"x-enum-descriptions":{"radio":"Для радиокнопок всегда radio"},"example":"radio"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора","example":"accessibility","maxLength":255},"label":{"type":"string","description":"Подпись к группе радиокнопок","example":"Доступность","maxLength":150},"options":{"type":"array","description":"Массив радиокнопок","maxItems":10,"items":{"type":"object","description":"Опция для блоков select, radio и checkbox","required":["text","value"],"properties":{"text":{"type":"string","description":"Отображаемый текст","example":"Ничего","maxLength":75},"value":{"type":"string","description":"Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта","example":"nothing","maxLength":150},"description":{"type":"string","description":"Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом","example":"Каждый день бот будет присылать список новых задач в вашей команде","maxLength":75},"selected":{"type":"boolean","description":"Изначально выбранный пункт. Только один пункт может быть выбран.","example":true}},"$ref":"#/components/schemas/ViewBlockSelectableOption"}},"required":{"type":"boolean","description":"Обязательность","default":false,"example":true},"hint":{"type":"string","description":"Подсказка, которая отображается под группой радиокнопок серым цветом","example":"Если вы не планируете выходить на связь, то выберите вариант Ничего","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockRadio"},{"type":"object","description":"Блок checkbox — чекбоксы","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["checkbox"],"x-enum-descriptions":{"checkbox":"Для чекбоксов всегда checkbox"},"example":"checkbox"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора","example":"newsletters","maxLength":255},"label":{"type":"string","description":"Подпись к группе чекбоксов","example":"Рассылки","maxLength":150},"options":{"type":"array","description":"Массив чекбоксов","maxItems":10,"items":{"type":"object","required":["text","value"],"properties":{"text":{"type":"string","description":"Отображаемый текст","example":"Ничего","maxLength":75},"value":{"type":"string","description":"Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта","example":"nothing","maxLength":150},"description":{"type":"string","description":"Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом","example":"Каждый день бот будет присылать список новых задач в вашей команде","maxLength":75},"checked":{"type":"boolean","description":"Изначально выбранный пункт","example":true}},"$ref":"#/components/schemas/ViewBlockCheckboxOption"}},"required":{"type":"boolean","description":"Обязательность","default":false,"example":false},"hint":{"type":"string","description":"Подсказка, которая отображается под группой чекбоксов серым цветом","example":"Выберите интересующие вас рассылки","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockCheckbox"},{"type":"object","description":"Блок date — выбор даты","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["date"],"x-enum-descriptions":{"date":"Для выбора даты всегда date"},"example":"date"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем значения","example":"date_start","maxLength":255},"label":{"type":"string","description":"Подпись к полю","example":"Дата начала отпуска","maxLength":150},"initial_date":{"type":"string","format":"date","description":"Начальное значение в поле в формате YYYY-MM-DD","example":"2025-07-01"},"required":{"type":"boolean","description":"Обязательность","default":false,"example":true},"hint":{"type":"string","description":"Подсказка, которая отображается под полем серым цветом","example":"Укажите дату начала отпуска","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockDate"},{"type":"object","description":"Блок time — выбор времени","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["time"],"x-enum-descriptions":{"time":"Для выбора времени всегда time"},"example":"time"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем значения","example":"newsletter_time","maxLength":255},"label":{"type":"string","description":"Подпись к полю","example":"Время рассылки","maxLength":150},"initial_time":{"type":"string","format":"time","description":"Начальное значение в поле в формате HH:mm","example":"11:00"},"required":{"type":"boolean","description":"Обязательность","default":false,"example":false},"hint":{"type":"string","description":"Подсказка, которая отображается под полем серым цветом","example":"Укажите, в какое время присылать выбранные рассылки","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockTime"},{"type":"object","description":"Блок file_input — загрузка файлов","required":["type","name","label"],"properties":{"type":{"type":"string","description":"Тип блока","enum":["file_input"],"x-enum-descriptions":{"file_input":"Для загрузки файлов всегда file_input"},"example":"file_input"},"name":{"type":"string","description":"Название, которое будет передано в ваше приложение как ключ указанного пользователем значения","example":"request_doc","maxLength":255},"label":{"type":"string","description":"Подпись к полю","example":"Заявление","maxLength":150},"filetypes":{"type":"array","description":"Массив допустимых расширений файлов, указанные в виде строк (например, [\"png\",\"jpg\",\"gif\"]). Если это поле не указано, все расширения файлов будут приняты.","example":["pdf","jpg","png"],"items":{"type":"string"}},"max_files":{"type":"integer","format":"int32","description":"Максимальное количество файлов, которое может загрузить пользователь в это поле.","default":10,"example":1,"minimum":1,"maximum":10},"required":{"type":"boolean","description":"Обязательность","default":false,"example":true},"hint":{"type":"string","description":"Подсказка, которая отображается под полем серым цветом","example":"Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)","maxLength":2000}},"$ref":"#/components/schemas/ViewBlockFileInput"}],"$ref":"#/components/schemas/ViewBlockUnion"}}}}},"$ref":"#/components/schemas/OpenViewRequest"}}}},"responses":{"201":{"description":"The request has succeeded and a new resource has been created as a result."},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"410":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"views:write","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Открытие представления\n\n**Метод**: `POST`\n\n**Путь**: `/views/open`\n\n> **Скоуп:** `views:write`\n\nМетод для открытия модального окна с представлением для пользователя.\n\nЧтобы открыть модальное окно с представлением, ваше приложение должно иметь действительный, неистекший `trigger_id`.\n\n## Тело запроса\n\n**Обязательно**\n\nФормат: `application/json`\n\n### Схема\n\n- `type: string` (required) — Способ открытия представления. Пример: `\"modal\"`\n Значения: `modal` — Модальное окно\n- `trigger_id: string` (required) — Уникальный идентификатор события (полученный, например, в исходящем вебхуке о нажатии кнопки). Пример: `\"791a056b-006c-49dd-834b-c633fde52fe8\"`\n- `private_metadata: string` (max length: 3000) — Необязательная строка, которая будет отправлена в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для передачи в формате `JSON` какой то дополнительной информации вместе с заполненной пользователем формой.. Пример: `\"{\"timeoff_id\":4378}\"`\n- `callback_id: string` (max length: 255) — Необязательный идентификатор для распознавания этого представления, который будет отправлен в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для понимания, какую форму должен был заполнить пользователь.. Пример: `\"timeoff_reguest_form\"`\n- `view: object` (required) — Собранный объект представления\n - `title: string` (required, max length: 24) — Заголовок представления. Пример: `\"Уведомление об отпуске\"`\n - `close_text: string` (default: Отменить, max length: 24) — Текст кнопки закрытия представления. Отображается только в десктоп-вебе. В мобильных приложениях (iOS/Android) кнопка закрытия — это крестик в шапке, и заданный текст там не показывается.. Пример: `\"Закрыть\"`\n - `submit_text: string` (default: Отправить, max length: 24) — Текст кнопки отправки формы. Пример: `\"Отправить заявку\"`\n - `blocks: array (union)` (required, max items: 100) — Массив блоков представления\n **Возможные типы элементов:**\n\n - **ViewBlockHeader**: Блок header — заголовок\n - `type: string` (required) — Тип блока\n Значения: `header` — Для заголовков всегда header\n - `text: string` (required, max length: 150) — Текст заголовка\n - **ViewBlockPlainText**: Блок plain_text — обычный текст\n - `type: string` (required) — Тип блока\n Значения: `plain_text` — Для обычного текста всегда plain_text\n - `text: string` (required, max length: 12000) — Текст\n - **ViewBlockMarkdown**: Блок markdown — форматированный текст\n - `type: string` (required) — Тип блока\n Значения: `markdown` — Для форматированного текста всегда markdown\n - `text: string` (required, max length: 12000) — Текст\n - **ViewBlockDivider**: Блок divider — разделитель\n - `type: string` (required) — Тип блока\n Значения: `divider` — Для разделителя всегда divider\n - **ViewBlockInput**: Блок input — текстовое поле ввода\n - `type: string` (required) — Тип блока\n Значения: `input` — Для текстового поля всегда input\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `placeholder: string` (max length: 150) — Подсказка внутри поля ввода, пока оно пустое\n - `multiline: boolean` (default: false) — Многострочное поле\n - `initial_value: string` (max length: 3000) — Начальное значение в поле\n - `min_length: integer, int32` (min: 0, max: 3000) — Минимальная длина текста, который должен написать пользователь. Если пользователь напишет меньше, он получит ошибку.\n - `max_length: integer, int32` (min: 1, max: 3000) — Максимальная длина текста, который должен написать пользователь. Если пользователь напишет больше, он получит ошибку.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockSelect**: Блок select — выпадающий список\n - `type: string` (required) — Тип блока\n Значения: `select` — Для выпадающего списка всегда select\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к выпадающему списку\n - `options: array of object` (max items: 100) — Массив доступных пунктов в выпадающем списке\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `selected: boolean` — Изначально выбранный пункт. Только один пункт может быть выбран.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под выпадающим списком серым цветом\n - **ViewBlockRadio**: Блок radio — радиокнопки\n - `type: string` (required) — Тип блока\n Значения: `radio` — Для радиокнопок всегда radio\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к группе радиокнопок\n - `options: array of object` (max items: 10) — Массив радиокнопок\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `description: string` (max length: 75) — Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом\n - `selected: boolean` — Изначально выбранный пункт. Только один пункт может быть выбран.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под группой радиокнопок серым цветом\n - **ViewBlockCheckbox**: Блок checkbox — чекбоксы\n - `type: string` (required) — Тип блока\n Значения: `checkbox` — Для чекбоксов всегда checkbox\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора\n - `label: string` (required, max length: 150) — Подпись к группе чекбоксов\n - `options: array of object` (max items: 10) — Массив чекбоксов\n - `text: string` (required, max length: 75) — Отображаемый текст\n - `value: string` (required, max length: 150) — Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта\n - `description: string` (max length: 75) — Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом\n - `checked: boolean` — Изначально выбранный пункт\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под группой чекбоксов серым цветом\n - **ViewBlockDate**: Блок date — выбор даты\n - `type: string` (required) — Тип блока\n Значения: `date` — Для выбора даты всегда date\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `initial_date: date` — Начальное значение в поле в формате YYYY-MM-DD\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockTime**: Блок time — выбор времени\n - `type: string` (required) — Тип блока\n Значения: `time` — Для выбора времени всегда time\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `initial_time: string, time` — Начальное значение в поле в формате HH:mm\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n - **ViewBlockFileInput**: Блок file_input — загрузка файлов\n - `type: string` (required) — Тип блока\n Значения: `file_input` — Для загрузки файлов всегда file_input\n - `name: string` (required, max length: 255) — Название, которое будет передано в ваше приложение как ключ указанного пользователем значения\n - `label: string` (required, max length: 150) — Подпись к полю\n - `filetypes: array of string` — Массив допустимых расширений файлов, указанные в виде строк (например, [\"png\",\"jpg\",\"gif\"]). Если это поле не указано, все расширения файлов будут приняты.\n - `max_files: integer, int32` (default: 10, min: 1, max: 10) — Максимальное количество файлов, которое может загрузить пользователь в это поле.\n - `required: boolean` (default: false) — Обязательность\n - `hint: string` (max length: 2000) — Подсказка, которая отображается под полем серым цветом\n\n### Пример\n\n```json\n{\n \"type\": \"modal\",\n \"trigger_id\": \"791a056b-006c-49dd-834b-c633fde52fe8\",\n \"private_metadata\": \"{\\\"timeoff_id\\\":4378}\",\n \"callback_id\": \"timeoff_reguest_form\",\n \"view\": {\n \"title\": \"Уведомление об отпуске\",\n \"close_text\": \"Закрыть\",\n \"submit_text\": \"Отправить заявку\",\n \"blocks\": [\n {\n \"type\": \"header\",\n \"text\": \"Основная информация\"\n },\n {\n \"type\": \"plain_text\",\n \"text\": \"Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.\"\n },\n {\n \"type\": \"markdown\",\n \"text\": \"Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)\"\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"input\",\n \"name\": \"info\",\n \"label\": \"Описание отпуска\",\n \"placeholder\": \"Куда собираетесь и что будете делать\",\n \"multiline\": true,\n \"initial_value\": \"Начальный текст\",\n \"min_length\": 10,\n \"max_length\": 500,\n \"required\": true,\n \"hint\": \"Возможно вам подскаджут, какие места лучше посетить\"\n },\n {\n \"type\": \"select\",\n \"name\": \"team\",\n \"label\": \"Выберите команду\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"selected\": true\n }\n ],\n \"hint\": \"Выберите одну из команд\"\n },\n {\n \"type\": \"radio\",\n \"name\": \"accessibility\",\n \"label\": \"Доступность\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"description\": \"Каждый день бот будет присылать список новых задач в вашей команде\",\n \"selected\": true\n }\n ],\n \"required\": true,\n \"hint\": \"Если вы не планируете выходить на связь, то выберите вариант Ничего\"\n },\n {\n \"type\": \"checkbox\",\n \"name\": \"newsletters\",\n \"label\": \"Рассылки\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"description\": \"Каждый день бот будет присылать список новых задач в вашей команде\",\n \"checked\": true\n }\n ],\n \"hint\": \"Выберите интересующие вас рассылки\"\n },\n {\n \"type\": \"date\",\n \"name\": \"date_start\",\n \"label\": \"Дата начала отпуска\",\n \"initial_date\": \"2025-07-01\",\n \"required\": true,\n \"hint\": \"Укажите дату начала отпуска\"\n },\n {\n \"type\": \"time\",\n \"name\": \"newsletter_time\",\n \"label\": \"Время рассылки\",\n \"initial_time\": \"11:00\",\n \"hint\": \"Укажите, в какое время присылать выбранные рассылки\"\n },\n {\n \"type\": \"file_input\",\n \"name\": \"request_doc\",\n \"label\": \"Заявление\",\n \"filetypes\": [\n \"pdf\",\n \"jpg\",\n \"png\"\n ],\n \"max_files\": 1,\n \"required\": true,\n \"hint\": \"Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)\"\n }\n ]\n }\n}\n```\n\n## Пример запроса\n\n```bash\ncurl \"https://api.pachca.com/api/shared/v1/views/open\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"type\": \"modal\",\n \"trigger_id\": \"791a056b-006c-49dd-834b-c633fde52fe8\",\n \"private_metadata\": \"{\\\"timeoff_id\\\":4378}\",\n \"callback_id\": \"timeoff_reguest_form\",\n \"view\": {\n \"title\": \"Уведомление об отпуске\",\n \"close_text\": \"Закрыть\",\n \"submit_text\": \"Отправить заявку\",\n \"blocks\": [\n {\n \"type\": \"header\",\n \"text\": \"Основная информация\"\n },\n {\n \"type\": \"plain_text\",\n \"text\": \"Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.\"\n },\n {\n \"type\": \"markdown\",\n \"text\": \"Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)\"\n },\n {\n \"type\": \"divider\"\n },\n {\n \"type\": \"input\",\n \"name\": \"info\",\n \"label\": \"Описание отпуска\",\n \"placeholder\": \"Куда собираетесь и что будете делать\",\n \"multiline\": true,\n \"initial_value\": \"Начальный текст\",\n \"min_length\": 10,\n \"max_length\": 500,\n \"required\": true,\n \"hint\": \"Возможно вам подскаджут, какие места лучше посетить\"\n },\n {\n \"type\": \"select\",\n \"name\": \"team\",\n \"label\": \"Выберите команду\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"selected\": true\n }\n ],\n \"hint\": \"Выберите одну из команд\"\n },\n {\n \"type\": \"radio\",\n \"name\": \"accessibility\",\n \"label\": \"Доступность\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"description\": \"Каждый день бот будет присылать список новых задач в вашей команде\",\n \"selected\": true\n }\n ],\n \"required\": true,\n \"hint\": \"Если вы не планируете выходить на связь, то выберите вариант Ничего\"\n },\n {\n \"type\": \"checkbox\",\n \"name\": \"newsletters\",\n \"label\": \"Рассылки\",\n \"options\": [\n {\n \"text\": \"Ничего\",\n \"value\": \"nothing\",\n \"description\": \"Каждый день бот будет присылать список новых задач в вашей команде\",\n \"checked\": true\n }\n ],\n \"hint\": \"Выберите интересующие вас рассылки\"\n },\n {\n \"type\": \"date\",\n \"name\": \"date_start\",\n \"label\": \"Дата начала отпуска\",\n \"initial_date\": \"2025-07-01\",\n \"required\": true,\n \"hint\": \"Укажите дату начала отпуска\"\n },\n {\n \"type\": \"time\",\n \"name\": \"newsletter_time\",\n \"label\": \"Время рассылки\",\n \"initial_time\": \"11:00\",\n \"hint\": \"Укажите, в какое время присылать выбранные рассылки\"\n },\n {\n \"type\": \"file_input\",\n \"name\": \"request_doc\",\n \"label\": \"Заявление\",\n \"filetypes\": [\n \"pdf\",\n \"jpg\",\n \"png\"\n ],\n \"max_files\": 1,\n \"required\": true,\n \"hint\": \"Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)\"\n }\n ]\n }\n}'\n```\n\n## Ответы\n\n### 201: The request has succeeded and a new resource has been created as a result.\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 410: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"GET","path":"/webhooks/events","summary":"История событий","scope":"webhooks:events:read","plan":null,"auth":true,"paginated":true,"command":"pachca bots list-events","docLink":"https://dev.pachca.com/api/bots/list-events","describe":"# GET /webhooks/events — История событий\n\n> **Скоуп:** `webhooks:events:read`\n\n> Пагинация: добавьте `--all` для автоматического обхода страниц\n\n## Параметры\n\n- `limit` — query: Количество возвращаемых сущностей за один запрос\n- `cursor` — query: Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n## Эквивалентная команда\n\n```bash\n# Добавьте --all для автоматической пагинации\npachca bots list-events \\\n --limit=1 \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/list-events\nПолная справка: `pachca api GET /webhooks/events --docs` · схема: `--spec`\n","spec":{"method":"GET","path":"/webhooks/events","description":"История событий\n\nМетод для получения истории последних событий бота. Данный метод будет полезен, если вы не можете получать события в реальном времени на ваш `URL`, но вам требуется обрабатывать все события, на которые вы подписались.\n\nИстория событий сохраняется только при активном пункте «Сохранять историю событий» во вкладке «Исходящий webhook» настроек бота. При этом указывать «Webhook `URL`» не требуется.\n\nДля получения истории событий конкретного бота вам необходимо знать его `access_token` и использовать его при запросе. Каждое событие представляет `JSON` объект вебхука.","parameters":[{"name":"limit","in":"query","description":"Количество возвращаемых сущностей за один запрос","required":false,"schema":{"type":"integer","format":"int32","default":50,"example":1,"minimum":1,"maximum":50},"example":1,"explode":false},{"name":"cursor","in":"query","description":"Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)","required":false,"schema":{"type":"string","example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9"},"example":"eyJpZCI6MTAsImRpciI6ImFzYyJ9","explode":false}],"responses":{"200":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","description":"Обертка ответа с данными и пагинацией","required":["data","meta"],"properties":{"data":{"type":"array","items":{"type":"object","description":"Событие исходящего вебхука","required":["id","event_type","payload","created_at"],"properties":{"id":{"type":"string","description":"Идентификатор события","example":"01KAJZ2XDSS2S3DSW9EXJZ0TBV"},"event_type":{"type":"string","description":"Тип события","example":"message_new"},"payload":{"description":"Объект вебхука","allOf":[{"description":"Объединение всех типов payload вебхуков","anyOf":[{"type":"object","description":"Структура исходящего вебхука о сообщении","required":["type","id","event","entity_type","entity_id","content","user_id","created_at","url","chat_id","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["message"],"x-enum-descriptions":{"message":"Для сообщений всегда message"},"example":"message"},"id":{"type":"integer","format":"int32","description":"Идентификатор сообщения","example":1245817},"event":{"description":"Тип события","example":"new","allOf":[{"type":"string","description":"Тип события webhook","enum":["new","update","delete"],"x-enum-descriptions":{"new":"Создание","update":"Обновление","delete":"Удаление"},"$ref":"#/components/schemas/WebhookEventType"}]},"entity_type":{"description":"Тип сущности, к которой относится сообщение","example":"discussion","allOf":[{"type":"string","description":"Тип сущности для сообщений","enum":["discussion","thread","user"],"x-enum-descriptions":{"discussion":"Беседа или канал","thread":"Тред","user":"Пользователь"},"$ref":"#/components/schemas/MessageEntityType"}]},"entity_id":{"type":"integer","format":"int32","description":"Идентификатор сущности, к которой относится сообщение","example":5678},"content":{"type":"string","description":"Текст сообщения","example":"Текст сообщения"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор отправителя сообщения","example":2345},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"},"url":{"type":"string","description":"Прямая ссылка на сообщение","example":"https://pachca.com/chats/1245817/messages/5678"},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение","example":9012},"parent_message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому написан ответ","example":3456,"nullable":true},"thread":{"type":"object","description":"Объект с параметрами треда","nullable":true,"allOf":[{"type":"object","description":"Объект треда в вебхуке сообщения","required":["message_id","message_chat_id"],"properties":{"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому был создан тред","example":12345},"message_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому был создан тред","example":67890}},"$ref":"#/components/schemas/WebhookMessageThread"}]},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/MessageWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука о реакции","required":["type","event","chat_id","message_id","code","name","user_id","created_at","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["reaction"],"x-enum-descriptions":{"reaction":"Для реакций всегда reaction"},"example":"reaction"},"event":{"description":"Тип события","example":"new","allOf":[{"type":"string","description":"Тип события webhook для реакций","enum":["new","delete"],"x-enum-descriptions":{"new":"Создание","delete":"Удаление"},"$ref":"#/components/schemas/ReactionEventType"}]},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором находится сообщение. Поле всегда присутствует в payload. В редких случаях (например, если сообщение было удалено к моменту отправки вебхука) может быть `null`.","example":9012,"nullable":true},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому относится реакция","example":1245817},"code":{"type":"string","description":"Emoji символ реакции","example":"👍"},"name":{"type":"string","description":"Название реакции","example":"thumbsup"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который добавил или удалил реакцию","example":2345},"created_at":{"type":"string","format":"date-time","description":"Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Поле присутствует и для события удаления реакции.","example":"2025-05-15T14:30:00.000Z"},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/ReactionWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука о нажатии кнопки","required":["type","event","message_id","trigger_id","data","user_id","chat_id","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["button"],"x-enum-descriptions":{"button":"Для кнопки всегда button"},"example":"button"},"event":{"type":"string","description":"Тип события","enum":["click"],"x-enum-descriptions":{"click":"Нажатие кнопки"},"example":"click"},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому относится кнопка","example":1245817},"trigger_id":{"type":"string","description":"Уникальный идентификатор события. Время жизни — 3 секунды. Может быть использован, например, для открытия представления пользователю","example":"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14"},"data":{"type":"string","description":"Данные нажатой кнопки","example":"button_data"},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который нажал кнопку","example":2345},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором была нажата кнопка","example":9012},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/ButtonWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука о заполнении формы","required":["type","event","callback_id","private_metadata","chat_id","user_id","data","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["view"],"x-enum-descriptions":{"view":"Для формы всегда view"},"example":"view"},"event":{"type":"string","description":"Тип события","enum":["submit"],"x-enum-descriptions":{"submit":"Отправка формы"},"example":"submit"},"callback_id":{"type":"string","description":"Идентификатор обратного вызова, указанный при открытии представления","example":"timeoff_request_form","nullable":true},"private_metadata":{"type":"string","description":"Приватные метаданные, указанные при открытии представления","example":"{'timeoff_id':4378}","nullable":true},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором была нажата кнопка, открывшая форму. Поле может быть `null` для форм, открытых до выкатки этого поля.","example":9012,"nullable":true},"user_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, который отправил форму","example":1235523},"data":{"type":"object","description":"Данные заполненных полей представления. Ключ — `name` блока, значение — введённые данные","additionalProperties":{}},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1755075544}},"$ref":"#/components/schemas/ViewSubmitWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука об участниках чата","required":["type","event","chat_id","user_ids","created_at","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["chat_member"],"x-enum-descriptions":{"chat_member":"Для участника чата всегда chat_member"},"example":"chat_member"},"event":{"description":"Тип события","example":"add","allOf":[{"type":"string","description":"Тип события webhook для участников","enum":["add","remove"],"x-enum-descriptions":{"add":"Добавление","remove":"Удаление"},"$ref":"#/components/schemas/MemberEventType"}]},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором изменился состав участников","example":9012},"thread_id":{"type":"integer","format":"int32","description":"Идентификатор треда","example":5678,"nullable":true},"user_ids":{"type":"array","description":"Массив идентификаторов пользователей, с которыми произошло событие","example":[2345,6789],"items":{"type":"integer","format":"int32"}},"created_at":{"type":"string","format":"date-time","description":"Дата и время события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/ChatMemberWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука об участниках пространства","required":["type","event","user_ids","created_at","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["company_member"],"x-enum-descriptions":{"company_member":"Для участника пространства всегда company_member"},"example":"company_member"},"event":{"description":"Тип события","example":"invite","allOf":[{"type":"string","description":"Тип события webhook для пользователей","enum":["invite","confirm","update","suspend","activate","delete"],"x-enum-descriptions":{"invite":"Приглашение","confirm":"Подтверждение","update":"Обновление","suspend":"Приостановка","activate":"Активация","delete":"Удаление"},"$ref":"#/components/schemas/UserEventType"}]},"user_ids":{"type":"array","description":"Массив идентификаторов пользователей, с которыми произошло событие","example":[2345,6789],"items":{"type":"integer","format":"int32"}},"created_at":{"type":"string","format":"date-time","description":"Дата и время события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/CompanyMemberWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука о разворачивании ссылок","required":["type","event","chat_id","message_id","links","user_id","created_at","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["message"],"x-enum-descriptions":{"message":"Для разворачивания ссылок всегда message"},"example":"message"},"event":{"type":"string","description":"Тип события","enum":["link_shared"],"x-enum-descriptions":{"link_shared":"Обнаружена ссылка на отслеживаемый домен"},"example":"link_shared"},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором обнаружена ссылка","example":23438},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, содержащего ссылку","example":268092},"links":{"type":"array","description":"Массив обнаруженных ссылок на отслеживаемые домены","items":{"type":"object","description":"Объект ссылки в вебхуке разворачивания ссылок","required":["url","domain","skip"],"properties":{"url":{"type":"string","description":"URL ссылки","example":"https://example.com/page1"},"domain":{"type":"string","description":"Домен ссылки","example":"example.com"},"skip":{"type":"boolean","description":"Признак того, что автор сообщения скрыл превью для этой ссылки. Если `true` — бот не должен создавать превью","example":false}},"$ref":"#/components/schemas/WebhookLink"}},"user_id":{"type":"integer","format":"int32","description":"Идентификатор отправителя сообщения","example":2345},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2024-09-18T19:53:14.000Z"},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1726685594}},"$ref":"#/components/schemas/LinkSharedWebhookPayload"},{"type":"object","description":"Структура исходящего вебхука о видеозвонке","required":["type","event","video_room_id","chat_id","owner_id","webhook_timestamp"],"properties":{"type":{"type":"string","description":"Тип объекта","enum":["video_call"],"x-enum-descriptions":{"video_call":"Для видеозвонков всегда video_call"},"example":"video_call"},"event":{"description":"Тип события","example":"started","allOf":[{"type":"string","description":"Тип события видеозвонка","enum":["started","finished","recording_ready"],"x-enum-descriptions":{"started":"Видеозвонок начался","finished":"Видеозвонок завершился","recording_ready":"Запись видеозвонка готова"},"$ref":"#/components/schemas/VideoCallEventType"}]},"video_room_id":{"type":"integer","format":"int32","description":"Идентификатор видеозвонка","example":9012},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата, в котором проходит видеозвонок","example":23438},"owner_id":{"type":"integer","format":"int32","description":"Идентификатор пользователя, начавшего видеозвонок","example":2345},"thread":{"type":"object","description":"Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде.","nullable":true,"allOf":[{"type":"object","description":"Параметры треда, в котором проходит видеозвонок","required":["id","chat_id","message_id","message_chat_id"],"properties":{"id":{"type":"integer","format":"int32","description":"Идентификатор треда","example":12345},"chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата треда","example":67890},"message_id":{"type":"integer","format":"int32","description":"Идентификатор сообщения, к которому создан тред","example":268092},"message_chat_id":{"type":"integer","format":"int32","description":"Идентификатор чата сообщения, к которому создан тред","example":23438}},"$ref":"#/components/schemas/WebhookVideoCallThread"}]},"started_at":{"type":"string","format":"date-time","description":"Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished.","example":"2025-05-15T14:30:00.000Z"},"finished_at":{"type":"string","format":"date-time","description":"Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished.","example":"2025-05-15T14:45:00.000Z"},"duration":{"type":"integer","format":"int32","description":"Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи.","example":900},"members":{"type":"array","description":"Список участников звонка. Присутствует для события finished.","items":{"type":"object","description":"Участник видеозвонка","required":["user_id","joined_at","left_at"],"properties":{"user_id":{"type":"integer","format":"int32","description":"Идентификатор участника","example":2345},"joined_at":{"type":"string","format":"date-time","description":"Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"},"left_at":{"type":"string","format":"date-time","description":"Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка.","example":"2025-05-15T14:45:00.000Z"}},"$ref":"#/components/schemas/WebhookVideoCallMember"}},"recording_id":{"type":"integer","format":"int32","description":"Идентификатор записи. Присутствует для события recording_ready.","example":4567},"file_id":{"type":"integer","format":"int32","description":"Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан.","example":89012,"nullable":true},"url":{"type":"string","description":"Прямая ссылка на файл записи. Присутствует для события recording_ready.","example":"https://api.pachca.com/files/89012"},"size":{"type":"integer","format":"int32","description":"Размер файла записи в байтах. Присутствует для события recording_ready.","example":10485760},"webhook_timestamp":{"type":"integer","format":"int32","description":"Дата и время отправки вебхука (UTC+0) в формате UNIX","example":1747574400}},"$ref":"#/components/schemas/VideoCallWebhookPayload"}],"$ref":"#/components/schemas/WebhookPayloadUnion"}]},"created_at":{"type":"string","format":"date-time","description":"Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ","example":"2025-05-15T14:30:00.000Z"}},"$ref":"#/components/schemas/WebhookEvent"}},"meta":{"type":"object","description":"Метаданные пагинации","required":["paginate"],"properties":{"paginate":{"type":"object","description":"Вспомогательная информация","required":["next_page"],"properties":{"next_page":{"type":"string","description":"Курсор пагинации следующей страницы","example":"eyJxZCO2MiwiZGlyIjomSNYjIn3"},"prev_page":{"type":"string","description":"Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.","example":"eyJxZCO2MiwiZGlyIjoiYXNjIn0"},"has_next":{"type":"boolean","description":"Есть ли ещё данные на следующей странице. На последней странице — `false`.","example":true},"has_prev":{"type":"boolean","description":"Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.","example":false}}}},"$ref":"#/components/schemas/PaginationMeta"}}}}}},"400":{"description":"The server could not understand the request due to invalid syntax.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"422":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"webhooks:events:read","scopeRoles":["owner","admin","user","bot"]},"paginated":true},"docs":"# История событий\n\n**Метод**: `GET`\n\n**Путь**: `/webhooks/events`\n\n> **Скоуп:** `webhooks:events:read`\n\nМетод для получения истории последних событий бота. Данный метод будет полезен, если вы не можете получать события в реальном времени на ваш `URL`, но вам требуется обрабатывать все события, на которые вы подписались.\n\nИстория событий сохраняется только при активном пункте «Сохранять историю событий» во вкладке «Исходящий webhook» настроек бота. При этом указывать «Webhook `URL`» не требуется.\n\nДля получения истории событий конкретного бота вам необходимо знать его `access_token` и использовать его при запросе. Каждое событие представляет `JSON` объект вебхука.\n\n## Параметры\n\n### Query параметры\n\n- `limit: integer, int32` (default: 50) — Количество возвращаемых сущностей за один запрос\n- `cursor: string` — Курсор для пагинации (из `meta.paginate.next_page` или `meta.paginate.prev_page`)\n\n\n## Пример запроса\n\n```bash\n# Для получения следующей страницы используйте cursor из meta.paginate.next_page\ncurl \"https://api.pachca.com/api/shared/v1/webhooks/events?limit=1\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 200: The request has succeeded.\n\n**Схема ответа:**\n\n- `data: array of object` (required)\n - `id: string` (required) — Идентификатор события. Пример: `\"01KAJZ2XDSS2S3DSW9EXJZ0TBV\"`\n - `event_type: string` (required) — Тип события. Пример: `\"message_new\"`\n - `payload: anyOf` (required) — Объект вебхука\n **Возможные варианты:**\n\n - **MessageWebhookPayload**: Структура исходящего вебхука о сообщении\n - `type: string` (required) — Тип объекта. Пример: `\"message\"`\n Значения: `message` — Для сообщений всегда message\n - `id: integer, int32` (required) — Идентификатор сообщения. Пример: `1245817`\n - `event: string` (required) — Тип события\n Значения: `new` — Создание, `update` — Обновление, `delete` — Удаление\n - `entity_type: string` (required) — Тип сущности, к которой относится сообщение\n Значения: `discussion` — Беседа или канал, `thread` — Тред, `user` — Пользователь\n - `entity_id: integer, int32` (required) — Идентификатор сущности, к которой относится сообщение. Пример: `5678`\n - `content: string` (required) — Текст сообщения. Пример: `\"Текст сообщения\"`\n - `user_id: integer, int32` (required) — Идентификатор отправителя сообщения. Пример: `2345`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `url: string` (required) — Прямая ссылка на сообщение. Пример: `\"https://pachca.com/chats/1245817/messages/5678\"`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Пример: `9012`\n - `parent_message_id: integer, int32` — Идентификатор сообщения, к которому написан ответ. Пример: `3456`\n - `thread: object` — Объект с параметрами треда\n - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому был создан тред. Пример: `12345`\n - `message_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому был создан тред. Пример: `67890`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **ReactionWebhookPayload**: Структура исходящего вебхука о реакции\n - `type: string` (required) — Тип объекта. Пример: `\"reaction\"`\n Значения: `reaction` — Для реакций всегда reaction\n - `event: string` (required) — Тип события\n Значения: `new` — Создание, `delete` — Удаление\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором находится сообщение. Поле всегда присутствует в payload. В редких случаях (например, если сообщение было удалено к моменту отправки вебхука) может быть `null`.. Пример: `9012`\n - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому относится реакция. Пример: `1245817`\n - `code: string` (required) — Emoji символ реакции. Пример: `\"👍\"`\n - `name: string` (required) — Название реакции. Пример: `\"thumbsup\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, который добавил или удалил реакцию. Пример: `2345`\n - `created_at: date-time` (required) — Дата и время добавления реакции (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Поле присутствует и для события удаления реакции.. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **ButtonWebhookPayload**: Структура исходящего вебхука о нажатии кнопки\n - `type: string` (required) — Тип объекта. Пример: `\"button\"`\n Значения: `button` — Для кнопки всегда button\n - `event: string` (required) — Тип события. Пример: `\"click\"`\n Значения: `click` — Нажатие кнопки\n - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому относится кнопка. Пример: `1245817`\n - `trigger_id: string` (required) — Уникальный идентификатор события. Время жизни — 3 секунды. Может быть использован, например, для открытия представления пользователю. Пример: `\"a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14\"`\n - `data: string` (required) — Данные нажатой кнопки. Пример: `\"button_data\"`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, который нажал кнопку. Пример: `2345`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором была нажата кнопка. Пример: `9012`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **ViewSubmitWebhookPayload**: Структура исходящего вебхука о заполнении формы\n - `type: string` (required) — Тип объекта. Пример: `\"view\"`\n Значения: `view` — Для формы всегда view\n - `event: string` (required) — Тип события. Пример: `\"submit\"`\n Значения: `submit` — Отправка формы\n - `callback_id: string` (required) — Идентификатор обратного вызова, указанный при открытии представления. Пример: `\"timeoff_request_form\"`\n - `private_metadata: string` (required) — Приватные метаданные, указанные при открытии представления. Пример: `\"{'timeoff_id':4378}\"`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором была нажата кнопка, открывшая форму. Поле может быть `null` для форм, открытых до выкатки этого поля.. Пример: `9012`\n - `user_id: integer, int32` (required) — Идентификатор пользователя, который отправил форму. Пример: `1235523`\n - `data: Record` (required) — Данные заполненных полей представления. Ключ — `name` блока, значение — введённые данные\n **Структура значений Record:**\n - Тип значения: `any`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1755075544`\n - **ChatMemberWebhookPayload**: Структура исходящего вебхука об участниках чата\n - `type: string` (required) — Тип объекта. Пример: `\"chat_member\"`\n Значения: `chat_member` — Для участника чата всегда chat_member\n - `event: string` (required) — Тип события\n Значения: `add` — Добавление, `remove` — Удаление\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором изменился состав участников. Пример: `9012`\n - `thread_id: integer, int32` — Идентификатор треда. Пример: `5678`\n - `user_ids: array of integer` (required) — Массив идентификаторов пользователей, с которыми произошло событие. Пример: `[2345,6789]`\n - `created_at: date-time` (required) — Дата и время события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **CompanyMemberWebhookPayload**: Структура исходящего вебхука об участниках пространства\n - `type: string` (required) — Тип объекта. Пример: `\"company_member\"`\n Значения: `company_member` — Для участника пространства всегда company_member\n - `event: string` (required) — Тип события\n Значения: `invite` — Приглашение, `confirm` — Подтверждение, `update` — Обновление, `suspend` — Приостановка, `activate` — Активация, `delete` — Удаление\n - `user_ids: array of integer` (required) — Массив идентификаторов пользователей, с которыми произошло событие. Пример: `[2345,6789]`\n - `created_at: date-time` (required) — Дата и время события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - **LinkSharedWebhookPayload**: Структура исходящего вебхука о разворачивании ссылок\n - `type: string` (required) — Тип объекта. Пример: `\"message\"`\n Значения: `message` — Для разворачивания ссылок всегда message\n - `event: string` (required) — Тип события. Пример: `\"link_shared\"`\n Значения: `link_shared` — Обнаружена ссылка на отслеживаемый домен\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором обнаружена ссылка. Пример: `23438`\n - `message_id: integer, int32` (required) — Идентификатор сообщения, содержащего ссылку. Пример: `268092`\n - `links: array of object` (required) — Массив обнаруженных ссылок на отслеживаемые домены\n - `url: string` (required) — URL ссылки. Пример: `\"https://example.com/page1\"`\n - `domain: string` (required) — Домен ссылки. Пример: `\"example.com\"`\n - `skip: boolean` (required) — Признак того, что автор сообщения скрыл превью для этой ссылки. Если `true` — бот не должен создавать превью. Пример: `false`\n - `user_id: integer, int32` (required) — Идентификатор отправителя сообщения. Пример: `2345`\n - `created_at: date-time` (required) — Дата и время создания сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2024-09-18T19:53:14.000Z\"`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1726685594`\n - **VideoCallWebhookPayload**: Структура исходящего вебхука о видеозвонке\n - `type: string` (required) — Тип объекта. Пример: `\"video_call\"`\n Значения: `video_call` — Для видеозвонков всегда video_call\n - `event: string` (required) — Тип события\n Значения: `started` — Видеозвонок начался, `finished` — Видеозвонок завершился, `recording_ready` — Запись видеозвонка готова\n - `video_room_id: integer, int32` (required) — Идентификатор видеозвонка. Пример: `9012`\n - `chat_id: integer, int32` (required) — Идентификатор чата, в котором проходит видеозвонок. Пример: `23438`\n - `owner_id: integer, int32` (required) — Идентификатор пользователя, начавшего видеозвонок. Пример: `2345`\n - `thread: object` — Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде.\n - `id: integer, int32` (required) — Идентификатор треда. Пример: `12345`\n - `chat_id: integer, int32` (required) — Идентификатор чата треда. Пример: `67890`\n - `message_id: integer, int32` (required) — Идентификатор сообщения, к которому создан тред. Пример: `268092`\n - `message_chat_id: integer, int32` (required) — Идентификатор чата сообщения, к которому создан тред. Пример: `23438`\n - `started_at: date-time` — Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished.. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `finished_at: date-time` — Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished.. Пример: `\"2025-05-15T14:45:00.000Z\"`\n - `duration: integer, int32` — Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи.. Пример: `900`\n - `members: array of object` — Список участников звонка. Присутствует для события finished.\n - `user_id: integer, int32` (required) — Идентификатор участника. Пример: `2345`\n - `joined_at: date-time` (required) — Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n - `left_at: date-time` (required) — Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка.. Пример: `\"2025-05-15T14:45:00.000Z\"`\n - `recording_id: integer, int32` — Идентификатор записи. Присутствует для события recording_ready.. Пример: `4567`\n - `file_id: integer, int32` — Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан.. Пример: `89012`\n - `url: string` — Прямая ссылка на файл записи. Присутствует для события recording_ready.. Пример: `\"https://api.pachca.com/files/89012\"`\n - `size: integer, int32` — Размер файла записи в байтах. Присутствует для события recording_ready.. Пример: `10485760`\n - `webhook_timestamp: integer, int32` (required) — Дата и время отправки вебхука (UTC+0) в формате UNIX. Пример: `1747574400`\n - `created_at: date-time` (required) — Дата и время создания события (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Пример: `\"2025-05-15T14:30:00.000Z\"`\n- `meta: object` (required) — Метаданные пагинации\n - `paginate: object` (required) — Вспомогательная информация\n - `next_page: string` (required) — Курсор пагинации следующей страницы. Пример: `\"eyJxZCO2MiwiZGlyIjomSNYjIn3\"`\n - `prev_page: string` — Курсор пагинации предыдущей страницы. Используется для polling новых записей «сверху» списка.. Пример: `\"eyJxZCO2MiwiZGlyIjoiYXNjIn0\"`\n - `has_next: boolean` — Есть ли ещё данные на следующей странице. На последней странице — `false`.. Пример: `true`\n - `has_prev: boolean` — Есть ли ещё данные на предыдущей странице. На первом запросе без курсора — `false`.. Пример: `false`\n\n**Пример ответа:**\n\n```json\n{\n \"data\": [\n {\n \"id\": \"01KAJZ2XDSS2S3DSW9EXJZ0TBV\",\n \"event_type\": \"message_new\",\n \"payload\": {\n \"type\": \"message\",\n \"id\": 1245817,\n \"event\": \"new\",\n \"entity_type\": \"discussion\",\n \"entity_id\": 5678,\n \"content\": \"Текст сообщения\",\n \"user_id\": 2345,\n \"created_at\": \"2025-05-15T14:30:00.000Z\",\n \"url\": \"https://pachca.com/chats/1245817/messages/5678\",\n \"chat_id\": 9012,\n \"parent_message_id\": 3456,\n \"thread\": {\n \"message_id\": 12345,\n \"message_chat_id\": 67890\n },\n \"webhook_timestamp\": 1747574400\n },\n \"created_at\": \"2025-05-15T14:30:00.000Z\"\n }\n ],\n \"meta\": {\n \"paginate\": {\n \"next_page\": \"eyJxZCO2MiwiZGlyIjomSNYjIn3\",\n \"prev_page\": \"eyJxZCO2MiwiZGlyIjoiYXNjIn0\",\n \"has_next\": true,\n \"has_prev\": false\n }\n }\n}\n```\n\n### 400: The server could not understand the request due to invalid syntax.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 422: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"},{"method":"DELETE","path":"/webhooks/events/{id}","summary":"Удаление события","scope":"webhooks:events:delete","plan":null,"auth":true,"paginated":false,"command":"pachca bots remove-event","docLink":"https://dev.pachca.com/api/bots/remove-event","describe":"# DELETE /webhooks/events/{id} — Удаление события\n\n> **Скоуп:** `webhooks:events:delete`\n\n## Параметры\n\n- `id` — путь (обязательный): Идентификатор события\n\n## Эквивалентная команда\n\n```bash\npachca bots remove-event 01KAJZ2XDSS2S3DSW9EXJZ0TBV \\\n --json \\\n --token YOUR_ACCESS_TOKEN\n```\n\nДокументация: https://dev.pachca.com/api/bots/remove-event\nПолная справка: `pachca api DELETE /webhooks/events/{id} --docs` · схема: `--spec`\n","spec":{"method":"DELETE","path":"/webhooks/events/{id}","description":"Удаление события\n\nДанный метод доступен для работы только с `access_token` бота\n\nМетод для удаления события из истории событий бота.\n\nДля удаления события вам необходимо знать `access_token` бота, которому принадлежит событие, и `id` события.","parameters":[{"name":"id","in":"path","description":"Идентификатор события","required":true,"schema":{"type":"string","example":"01KAJZ2XDSS2S3DSW9EXJZ0TBV"},"example":"01KAJZ2XDSS2S3DSW9EXJZ0TBV"}],"responses":{"204":{"description":"There is no content to send for this request, but the headers may be useful. "},"401":{"description":"Access is unauthorized.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"402":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Access is forbidden.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка OAuth авторизации (используется для 401 и 403)","required":["error","error_description"],"properties":{"error":{"type":"string","description":"Код ошибки","example":"invalid_token"},"error_description":{"type":"string","description":"Описание ошибки","example":"Access token is missing"}},"$ref":"#/components/schemas/OAuthError"}}}},"404":{"description":"The server cannot find the requested resource.","content":{"application/json":{"schema":{"type":"object","description":"Ошибка API (используется для 400, 402, 403, 404, 409, 410, 422)","required":["errors"],"properties":{"errors":{"type":"array","description":"Массив ошибок","items":{"type":"object","description":"Детальная информация об ошибке","required":["key","value","message","code","payload"],"properties":{"key":{"type":"string","description":"Ключ поля с ошибкой","example":"field.name"},"value":{"type":"string","description":"Значение поля, которое вызвало ошибку","example":"invalid_value","nullable":true},"message":{"type":"string","description":"Сообщение об ошибке","example":"Поле не может быть пустым"},"code":{"description":"Код ошибки","example":"blank","allOf":[{"type":"string","description":"Коды ошибок валидации","enum":["blank","too_long","invalid","inclusion","exclusion","taken","wrong_emoji","not_found","already_exists","personal_chat","displayed_error","not_authorized","invalid_date_range","invalid_webhook_url","rate_limit","licenses_limit","user_limit","unique_limit","general_limit","unhandled","trigger_not_found","trigger_expired","required","in","not_applicable","self_update","owner_protected","already_assigned","forbidden","permission_denied","access_denied","wrong_params","payment_required","min_length","max_length","use_of_system_words","export_file_not_found","cannot_kick_owner","pin_failed","message_deleted","thread_message"],"x-enum-descriptions":{"blank":"Обязательное поле (не может быть пустым)","too_long":"Слишком длинное значение (пояснения вы получите в поле message)","invalid":"Поле не соответствует правилам (пояснения вы получите в поле message)","inclusion":"Поле имеет непредусмотренное значение","exclusion":"Поле имеет недопустимое значение","taken":"Название для этого поля уже существует","wrong_emoji":"Emoji статуса не может содержать значения отличные от Emoji символа","not_found":"Объект не найден","already_exists":"Объект уже существует (пояснения вы получите в поле message)","personal_chat":"Ошибка личного чата (пояснения вы получите в поле message)","displayed_error":"Отображаемая ошибка (пояснения вы получите в поле message)","not_authorized":"Действие запрещено","invalid_date_range":"Выбран слишком большой диапазон дат","invalid_webhook_url":"Некорректный URL вебхука","rate_limit":"Достигнут лимит запросов","licenses_limit":"Превышен лимит активных сотрудников (пояснения вы получите в поле message)","user_limit":"Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)","unique_limit":"Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)","general_limit":"Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)","unhandled":"Ошибка выполнения запроса (пояснения вы получите в поле message)","trigger_not_found":"Не удалось найти идентификатор события","trigger_expired":"Время жизни идентификатора события истекло","required":"Обязательный параметр не передан","in":"Недопустимое значение (не входит в список допустимых)","not_applicable":"Значение неприменимо в данном контексте (пояснения вы получите в поле message)","self_update":"Нельзя изменить свои собственные данные","owner_protected":"Нельзя изменить данные владельца","already_assigned":"Значение уже назначено","forbidden":"Недостаточно прав для выполнения действия (пояснения вы получите в поле message)","permission_denied":"Доступ запрещён (недостаточно прав)","access_denied":"Доступ запрещён","wrong_params":"Некорректные параметры запроса (пояснения вы получите в поле message)","payment_required":"Требуется оплата","min_length":"Значение слишком короткое (пояснения вы получите в поле message)","max_length":"Значение слишком длинное (пояснения вы получите в поле message)","use_of_system_words":"Использовано зарезервированное системное слово (here, all)","export_file_not_found":"Файл экспорта не найден или ещё не готов","cannot_kick_owner":"Нельзя исключить владельца чата","pin_failed":"Не удалось закрепить сообщение","message_deleted":"Сообщение удалено","thread_message":"Нельзя создать тред для сообщения, которое уже находится в треде"},"$ref":"#/components/schemas/ValidationErrorCode"}]},"payload":{"type":"object","description":"Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`","example":null,"nullable":true,"additionalProperties":{}}},"$ref":"#/components/schemas/ApiErrorItem"}}},"$ref":"#/components/schemas/ApiError"}}}}},"requirements":{"scope":"webhooks:events:delete","scopeRoles":["owner","admin","user","bot"]},"paginated":false},"docs":"# Удаление события\n\n**Метод**: `DELETE`\n\n**Путь**: `/webhooks/events/{id}`\n\n> **Скоуп:** `webhooks:events:delete`\n\nДанный метод доступен для работы только с `access_token` бота\n\nМетод для удаления события из истории событий бота.\n\nДля удаления события вам необходимо знать `access_token` бота, которому принадлежит событие, и `id` события.\n\n## Параметры\n\n### Path параметры\n\n- `id: string` (required) — Идентификатор события\n\n\n## Пример запроса\n\n```bash\ncurl -X DELETE \"https://api.pachca.com/api/shared/v1/webhooks/events/01KAJZ2XDSS2S3DSW9EXJZ0TBV\" \\\n -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\"\n```\n\n## Ответы\n\n### 204: There is no content to send for this request, but the headers may be useful. \n\n### 401: Access is unauthorized.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 402: Client error\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n### 403: Access is forbidden.\n\n**Схема ответа при ошибке:**\n\n- `error: string` (required) — Код ошибки. Пример: `\"invalid_token\"`\n- `error_description: string` (required) — Описание ошибки. Пример: `\"Access token is missing\"`\n\n**Пример ответа:**\n\n```json\n{\n \"error\": \"invalid_token\",\n \"error_description\": \"Access token is missing\"\n}\n```\n\n### 404: The server cannot find the requested resource.\n\n**Схема ответа при ошибке:**\n\n- `errors: array of object` (required) — Массив ошибок\n - `key: string` (required) — Ключ поля с ошибкой. Пример: `\"field.name\"`\n - `value: string` (required) — Значение поля, которое вызвало ошибку. Пример: `\"invalid_value\"`\n - `message: string` (required) — Сообщение об ошибке. Пример: `\"Поле не может быть пустым\"`\n - `code: string` (required) — Код ошибки\n Значения: `blank` — Обязательное поле (не может быть пустым), `too_long` — Слишком длинное значение (пояснения вы получите в поле message), `invalid` — Поле не соответствует правилам (пояснения вы получите в поле message), `inclusion` — Поле имеет непредусмотренное значение, `exclusion` — Поле имеет недопустимое значение, `taken` — Название для этого поля уже существует, `wrong_emoji` — Emoji статуса не может содержать значения отличные от Emoji символа, `not_found` — Объект не найден, `already_exists` — Объект уже существует (пояснения вы получите в поле message), `personal_chat` — Ошибка личного чата (пояснения вы получите в поле message), `displayed_error` — Отображаемая ошибка (пояснения вы получите в поле message), `not_authorized` — Действие запрещено, `invalid_date_range` — Выбран слишком большой диапазон дат, `invalid_webhook_url` — Некорректный URL вебхука, `rate_limit` — Достигнут лимит запросов, `licenses_limit` — Превышен лимит активных сотрудников (пояснения вы получите в поле message), `user_limit` — Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций), `unique_limit` — Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций), `general_limit` — Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций), `unhandled` — Ошибка выполнения запроса (пояснения вы получите в поле message), `trigger_not_found` — Не удалось найти идентификатор события, `trigger_expired` — Время жизни идентификатора события истекло, `required` — Обязательный параметр не передан, `in` — Недопустимое значение (не входит в список допустимых), `not_applicable` — Значение неприменимо в данном контексте (пояснения вы получите в поле message), `self_update` — Нельзя изменить свои собственные данные, `owner_protected` — Нельзя изменить данные владельца, `already_assigned` — Значение уже назначено, `forbidden` — Недостаточно прав для выполнения действия (пояснения вы получите в поле message), `permission_denied` — Доступ запрещён (недостаточно прав), `access_denied` — Доступ запрещён, `wrong_params` — Некорректные параметры запроса (пояснения вы получите в поле message), `payment_required` — Требуется оплата, `min_length` — Значение слишком короткое (пояснения вы получите в поле message), `max_length` — Значение слишком длинное (пояснения вы получите в поле message), `use_of_system_words` — Использовано зарезервированное системное слово (here, all), `export_file_not_found` — Файл экспорта не найден или ещё не готов, `cannot_kick_owner` — Нельзя исключить владельца чата, `pin_failed` — Не удалось закрепить сообщение, `message_deleted` — Сообщение удалено, `thread_message` — Нельзя создать тред для сообщения, которое уже находится в треде\n - `payload: Record` (required) — Дополнительные данные об ошибке. Содержимое зависит от кода ошибки: `{id: number}` — при ошибке кастомного свойства (идентификатор свойства), `{record: {type: string, id: number}, query: string}` — при ошибке авторизации. В большинстве случаев `null`. Пример: `null`\n **Структура значений Record:**\n - Тип значения: `any`\n\n**Пример ответа:**\n\n```json\n{\n \"errors\": [\n {\n \"key\": \"field.name\",\n \"value\": \"invalid_value\",\n \"message\": \"Поле не может быть пустым\",\n \"code\": \"blank\",\n \"payload\": null\n }\n ]\n}\n```\n\n"}] \ No newline at end of file diff --git a/packages/cli/src/data/workflows.json b/packages/cli/src/data/workflows.json index 17b7d9d8..de9b0b3c 100644 --- a/packages/cli/src/data/workflows.json +++ b/packages/cli/src/data/workflows.json @@ -424,6 +424,20 @@ } ] }, + { + "title": "Найти и удалить бота", + "skill": "pachca-bots", + "steps": [ + { + "description": "Пользовательским токеном (скоуп `bots:read`) получи список ботов, доступных тебе для редактирования: созданных тобой и тех, чьи настройки открывают тебе доступ. Фильтруй по имени параметром `query`, следующую страницу бери из `meta.paginate.next_page`", + "command": "pachca bots list --query=\"задач\"" + }, + { + "description": "Возьми `id` нужного бота из списка и удали его (скоуп `bots:write`). Доступно администратору, владельцу компании или создателю бота — владельцы чатов удалять бота не могут. Прежний токен инвалидируется сразу, бот исключается из всех чатов, его исходящий вебхук удаляется", + "command": "pachca bots delete " + } + ] + }, { "title": "Обработать входящий вебхук-событие", "skill": "pachca-bots", diff --git a/packages/generator/src/lang/kotlin.ts b/packages/generator/src/lang/kotlin.ts index 28b8141f..329f0084 100644 --- a/packages/generator/src/lang/kotlin.ts +++ b/packages/generator/src/lang/kotlin.ts @@ -265,37 +265,40 @@ function emitUnion( lines.push('}'); if (useWebhookPayloadDeserializer) { + // Member-driven: the serialize/deserialize branches iterate the union's + // members, so a newly added payload type is wired up automatically. Only the + // message/link_shared collision (same `type`, disambiguated by `event`) is + // special-cased first — mirroring the go/swift/python/csharp generators. lines.push(''); - lines.push('object WebhookPayloadUnionSerializer : KSerializer {'); - lines.push(' override val descriptor = buildClassSerialDescriptor("WebhookPayloadUnion")'); + lines.push(`object ${u.name}Serializer : KSerializer<${u.name}> {`); + lines.push(` override val descriptor = buildClassSerialDescriptor("${u.name}")`); lines.push(''); - lines.push(' override fun serialize(encoder: Encoder, value: WebhookPayloadUnion) {'); - lines.push(' val jsonEncoder = encoder as? JsonEncoder ?: error("WebhookPayloadUnionSerializer only supports JSON")'); + lines.push(` override fun serialize(encoder: Encoder, value: ${u.name}) {`); + lines.push(` val jsonEncoder = encoder as? JsonEncoder ?: error("${u.name}Serializer only supports JSON")`); lines.push(' when (value) {'); - lines.push(' is MessageWebhookPayload -> jsonEncoder.encodeSerializableValue(MessageWebhookPayload.serializer(), value)'); - lines.push(' is ReactionWebhookPayload -> jsonEncoder.encodeSerializableValue(ReactionWebhookPayload.serializer(), value)'); - lines.push(' is ButtonWebhookPayload -> jsonEncoder.encodeSerializableValue(ButtonWebhookPayload.serializer(), value)'); - lines.push(' is ViewSubmitWebhookPayload -> jsonEncoder.encodeSerializableValue(ViewSubmitWebhookPayload.serializer(), value)'); - lines.push(' is ChatMemberWebhookPayload -> jsonEncoder.encodeSerializableValue(ChatMemberWebhookPayload.serializer(), value)'); - lines.push(' is CompanyMemberWebhookPayload -> jsonEncoder.encodeSerializableValue(CompanyMemberWebhookPayload.serializer(), value)'); - lines.push(' is LinkSharedWebhookPayload -> jsonEncoder.encodeSerializableValue(LinkSharedWebhookPayload.serializer(), value)'); + for (const ref of u.memberRefs) { + lines.push(` is ${ref} -> jsonEncoder.encodeSerializableValue(${ref}.serializer(), value)`); + } lines.push(' }'); lines.push(' }'); lines.push(''); - lines.push(' override fun deserialize(decoder: Decoder): WebhookPayloadUnion {'); - lines.push(' val jsonDecoder = decoder as? JsonDecoder ?: error("WebhookPayloadUnionSerializer only supports JSON")'); + lines.push(` override fun deserialize(decoder: Decoder): ${u.name} {`); + lines.push(` val jsonDecoder = decoder as? JsonDecoder ?: error("${u.name}Serializer only supports JSON")`); lines.push(' val element = jsonDecoder.decodeJsonElement()'); - lines.push(' val type = element.jsonObject["type"]?.jsonPrimitive?.contentOrNull'); + lines.push(` val type = element.jsonObject["${discriminatorField}"]?.jsonPrimitive?.contentOrNull`); lines.push(' val event = element.jsonObject["event"]?.jsonPrimitive?.contentOrNull'); lines.push(' return when {'); lines.push(' type == "message" && event == "link_shared" -> jsonDecoder.json.decodeFromJsonElement(LinkSharedWebhookPayload.serializer(), element)'); lines.push(' type == "message" -> jsonDecoder.json.decodeFromJsonElement(MessageWebhookPayload.serializer(), element)'); - lines.push(' type == "reaction" -> jsonDecoder.json.decodeFromJsonElement(ReactionWebhookPayload.serializer(), element)'); - lines.push(' type == "button" -> jsonDecoder.json.decodeFromJsonElement(ButtonWebhookPayload.serializer(), element)'); - lines.push(' type == "view" -> jsonDecoder.json.decodeFromJsonElement(ViewSubmitWebhookPayload.serializer(), element)'); - lines.push(' type == "chat_member" -> jsonDecoder.json.decodeFromJsonElement(ChatMemberWebhookPayload.serializer(), element)'); - lines.push(' type == "company_member" -> jsonDecoder.json.decodeFromJsonElement(CompanyMemberWebhookPayload.serializer(), element)'); - lines.push(' else -> error("Unknown WebhookPayloadUnion type: $type")'); + for (const ref of u.memberRefs.filter((ref) => ref !== 'MessageWebhookPayload' && ref !== 'LinkSharedWebhookPayload')) { + const model = ir.models.find((m) => m.name === ref); + const litField = model?.fields.find( + (f) => f.name === discriminatorField && f.type.kind === 'literal', + ) ?? model?.fields.find((f) => f.type.kind === 'literal'); + const litValue = litField?.type.literalValue ?? ''; + lines.push(` type == ${JSON.stringify(litValue)} -> jsonDecoder.json.decodeFromJsonElement(${ref}.serializer(), element)`); + } + lines.push(` else -> error("Unknown ${u.name} type: $type")`); lines.push(' }'); lines.push(' }'); lines.push('}'); diff --git a/packages/spec/openapi.en.yaml b/packages/spec/openapi.en.yaml index 7e60071a..4752876a 100644 --- a/packages/spec/openapi.en.yaml +++ b/packages/spec/openapi.en.yaml @@ -216,6 +216,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator access_token: bm90X2FfcmVhbF90b2tlbg '401': description: Access is unauthorized. @@ -289,6 +293,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator '400': description: The server could not understand the request due to invalid syntax. content: @@ -333,6 +341,114 @@ paths: x-requirements: scope: bot_self:webhook:write /bots: + get: + operationId: BotOperations_listBots + description: >- + List bots + + + Retrieve a list of bots. The response includes only the bots you can edit: those you created and those whose + settings grant you edit access. + parameters: + - name: query + in: query + required: false + description: Search phrase to filter bots by name + schema: + type: string + example: task + example: task + explode: false + - name: limit + in: query + required: false + description: Number of entities returned per request + schema: + type: integer + format: int32 + minimum: 1 + maximum: 50 + example: 1 + default: 50 + example: 1 + explode: false + - name: cursor + in: query + required: false + description: Pagination cursor (from `meta.paginate.next_page`) + schema: + type: string + example: eyJpZCI6MTczODgxNn0 + example: eyJpZCI6MTczODgxNn0 + explode: false + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + type: object + required: + - data + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/BotResponse' + meta: + $ref: '#/components/schemas/PaginationMeta' + description: Response wrapper with data and pagination + example: + data: + - id: 1738816 + webhook: + name: Tasks bot + nickname: tasks_bot + outgoing_url: https://www.website.com/tasks/new + events: + - message_new + trigger_on: commands + commands: + - /task + scopes: + - messages:create + template: Order from {{ client }} for {{ amount }} ₽ + template_engine: liquid + challenge_key: challenge + link_preview_enabled: true + ignore_self_messages: false + events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator + meta: + paginate: + next_page: eyJpZCI6MTczODgxNn0 + '401': + description: Access is unauthorized. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthError' + '402': + description: Client error + content: + application/json: + schema: + $ref: '#/components/schemas/ApiError' + '403': + description: Access is forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthError' + tags: + - Bots + x-paginated: true + x-requirements: + scope: bots:read post: operationId: BotOperations_createBot description: >- @@ -378,6 +494,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator access_token: bm90X2FfcmVhbF90b2tlbg '400': description: The server could not understand the request due to invalid syntax. @@ -475,6 +595,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator '401': description: Access is unauthorized. content: @@ -587,6 +711,62 @@ paths: $ref: '#/components/schemas/BotUpdateRequest' x-requirements: scope: bots:write + delete: + operationId: BotOperations_deleteBot + description: >- + Delete bot + + + Delete a bot. The bot's previous `access_token` is invalidated immediately, the bot is removed from all chats, + and its outgoing webhook is deleted. + + + Deletion is available to the bot creator, and to a company administrator if the bot's settings grant + administrators edit access. Chat owners and admins cannot delete a bot, even if they are allowed to edit it. + + + To delete a bot you need to know its `id` and specify it in the request `URL`. + parameters: + - name: id + in: path + required: true + description: Bot ID + schema: + type: integer + format: int32 + example: 1738816 + example: 1738816 + responses: + '204': + description: 'There is no content to send for this request, but the headers may be useful. ' + '401': + description: Access is unauthorized. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthError' + '402': + description: Client error + content: + application/json: + schema: + $ref: '#/components/schemas/ApiError' + '403': + description: Access is forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthError' + '404': + description: The server cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ApiError' + tags: + - Bots + x-requirements: + scope: bots:write /bots/{id}/recreate_token: post: operationId: BotOperations_recreateBotToken @@ -598,8 +778,9 @@ paths: compromised or for scheduled secret rotation in `CI`. - Available to a company administrator, the company owner, or the bot creator. Specify the bot's `id` in the - request `URL`. The new token is returned in the response only once — save it right away. + Rotation is available to the bot creator, and to a company administrator if the bot's settings grant + administrators edit access. Specify the bot's `id` in the request `URL`. The new token is returned in the + response only once — save it right away. parameters: - name: id in: path @@ -643,6 +824,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator access_token: bm90X2FfcmVhbF90b2tlbg '401': description: Access is unauthorized. @@ -5826,6 +6011,7 @@ components: - bot_scopes_updated - bot_webhook_settings_updated - bot_token_recreated + - bot_deleted description: Audit event type x-enum-descriptions: user_login: User logged in successfully @@ -5866,6 +6052,7 @@ components: bot_scopes_updated: Bot token scopes changed bot_webhook_settings_updated: Bot outgoing webhook settings changed bot_token_recreated: Bot token recreated (rotation) + bot_deleted: Bot deleted AvatarData: type: object required: @@ -5876,6 +6063,15 @@ components: description: Avatar URL example: https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg description: Avatar data + BotCanEdit: + type: string + enum: + - admin + - chat_owners + description: Role allowed to edit the bot settings + x-enum-descriptions: + admin: Company administrators + chat_owners: Owners of the chats the bot is added to BotCreateRequest: type: object required: @@ -5953,6 +6149,29 @@ components: description: Save the bot's event history for later retrieval via the event history method example: false default: false + who_can_add: + allOf: + - $ref: '#/components/schemas/BotWhoCanAdd' + description: Who can add the bot to chats + example: creator + default: creator + can_edit: + type: array + items: + $ref: '#/components/schemas/BotCanEdit' + description: >- + Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty + array means only the creator can edit. + example: + - admin + single_chat: + type: boolean + description: >- + Restricts the bot to a single group chat. `true` — the bot can be added to one discussion or channel + only, `false` — to multiple. Personal chats and threads don't count toward this limit. Set only on + creation and not changed on update. + example: false + default: false required: - name description: Webhook parameters object of the bot to create @@ -5999,6 +6218,9 @@ components: - company_member_delete - company_member_update - bill_created + - video_call_started + - video_call_finished + - video_call_recording_ready description: Bot outgoing webhook event x-enum-descriptions: message_new: New message @@ -6017,6 +6239,9 @@ components: company_member_delete: Employee removed from the company company_member_update: Employee data changed bill_created: Bill created + video_call_started: Video call started + video_call_finished: Video call finished + video_call_recording_ready: Video call recording ready BotResponse: type: object required: @@ -6130,6 +6355,21 @@ components: description: Save the bot's event history for later retrieval via the event history method example: false default: false + who_can_add: + allOf: + - $ref: '#/components/schemas/BotWhoCanAdd' + description: Who can add the bot to chats + example: creator + default: creator + can_edit: + type: array + items: + $ref: '#/components/schemas/BotCanEdit' + description: >- + Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty + array means only the creator can edit. + example: + - admin description: Webhook parameters object of the bot to update description: Bot update request BotWebhook: @@ -6148,6 +6388,9 @@ components: - link_preview_enabled - ignore_self_messages - events_history_enabled + - single_chat + - can_edit + - who_can_add properties: name: type: string @@ -6215,6 +6458,26 @@ components: type: boolean description: Save the bot's event history for later retrieval via the event history method example: false + single_chat: + type: boolean + description: >- + Restricts the bot to a single group chat. `true` — the bot can be added to one discussion or channel only, + `false` — to multiple. Personal chats and threads don't count toward this limit + example: false + can_edit: + type: array + items: + $ref: '#/components/schemas/BotCanEdit' + description: >- + Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty + array means only the creator can edit. + example: + - admin + who_can_add: + allOf: + - $ref: '#/components/schemas/BotWhoCanAdd' + description: Who can add the bot to chats + example: creator description: Bot webhook parameters BotWebhookSelfUpdateRequest: type: object @@ -6232,6 +6495,19 @@ components: - outgoing_url description: Webhook parameters object description: Bot webhook self-registration request + BotWhoCanAdd: + type: string + enum: + - creator + - creator_admin + - creator_admin_user + - anyone + description: Who can add the bot to chats + x-enum-descriptions: + creator: Only the bot creator + creator_admin: The creator and company administrators + creator_admin_user: The creator, administrators, and company members + anyone: Anyone, including guests Button: type: object required: @@ -8078,10 +8354,12 @@ components: enum: - by_score - alphabetical + - creation description: Search results sort order x-enum-descriptions: by_score: By relevance alphabetical: Alphabetically + creation: By creation date SortOrder: type: string enum: @@ -8967,6 +9245,111 @@ components: pin_failed: Failed to pin the message message_deleted: Message has been deleted thread_message: Cannot create a thread for a message that is already in a thread + VideoCallEventType: + type: string + enum: + - started + - finished + - recording_ready + description: Video call event type + x-enum-descriptions: + started: Video call started + finished: Video call finished + recording_ready: Video call recording is ready + VideoCallWebhookPayload: + type: object + required: + - type + - event + - video_room_id + - chat_id + - owner_id + - webhook_timestamp + properties: + type: + type: string + enum: + - video_call + description: Object type + example: video_call + x-enum-descriptions: + video_call: Always video_call for video calls + event: + allOf: + - $ref: '#/components/schemas/VideoCallEventType' + description: Event type + example: started + video_room_id: + type: integer + format: int32 + description: Video call ID + example: 9012 + chat_id: + type: integer + format: int32 + description: ID of the chat the video call takes place in + example: 23438 + owner_id: + type: integer + format: int32 + description: ID of the user who started the video call + example: 2345 + thread: + type: object + allOf: + - $ref: '#/components/schemas/WebhookVideoCallThread' + nullable: true + description: Thread parameters object if the video call takes place in a thread. `null` if the call is not in a thread. + started_at: + type: string + format: date-time + description: >- + Call start date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format. Present for the started and + finished events. + example: '2025-05-15T14:30:00.000Z' + finished_at: + type: string + format: date-time + description: Call end date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format. Present for the finished event. + example: '2025-05-15T14:45:00.000Z' + duration: + type: integer + format: int32 + description: >- + Duration in seconds. For the finished event it is the call duration, for recording_ready it is the recording + duration. + example: 900 + members: + type: array + items: + $ref: '#/components/schemas/WebhookVideoCallMember' + description: List of call participants. Present for the finished event. + recording_id: + type: integer + format: int32 + description: Recording ID. Present for the recording_ready event. + example: 4567 + file_id: + type: integer + format: int32 + nullable: true + description: Recording file ID. Present for the recording_ready event. `null` if the file is not attached yet. + example: 89012 + url: + type: string + description: Direct link to the recording file. Present for the recording_ready event. + example: https://api.pachca.com/files/89012 + size: + type: integer + format: int32 + description: Recording file size in bytes. Present for the recording_ready event. + example: 10485760 + webhook_timestamp: + type: integer + format: int32 + description: Webhook send date and time (UTC+0) in UNIX format + example: 1747574400 + description: Video call outgoing webhook structure ViewBlock: type: object required: @@ -9650,8 +10033,63 @@ components: - $ref: '#/components/schemas/ChatMemberWebhookPayload' - $ref: '#/components/schemas/CompanyMemberWebhookPayload' - $ref: '#/components/schemas/LinkSharedWebhookPayload' + - $ref: '#/components/schemas/VideoCallWebhookPayload' description: Union of all webhook payload types x-union-deserializer: webhook-payload + WebhookVideoCallMember: + type: object + required: + - user_id + - joined_at + - left_at + properties: + user_id: + type: integer + format: int32 + description: Participant ID + example: 2345 + joined_at: + type: string + format: date-time + description: First join date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format + example: '2025-05-15T14:30:00.000Z' + left_at: + type: string + format: date-time + description: >- + Leave date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format. If the participant stayed until + the call ended, it matches the call end time. + example: '2025-05-15T14:45:00.000Z' + description: Video call participant + WebhookVideoCallThread: + type: object + required: + - id + - chat_id + - message_id + - message_chat_id + properties: + id: + type: integer + format: int32 + description: Thread ID + example: 12345 + chat_id: + type: integer + format: int32 + description: Thread chat ID + example: 67890 + message_id: + type: integer + format: int32 + description: ID of the message the thread was created for + example: 268092 + message_chat_id: + type: integer + format: int32 + description: Chat ID of the message the thread was created for + example: 23438 + description: Parameters of the thread the video call takes place in securitySchemes: BearerAuth: type: http diff --git a/packages/spec/openapi.yaml b/packages/spec/openapi.yaml index dd5647d9..6276df4c 100644 --- a/packages/spec/openapi.yaml +++ b/packages/spec/openapi.yaml @@ -212,6 +212,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator access_token: bm90X2FfcmVhbF90b2tlbg '401': description: Access is unauthorized. @@ -282,6 +286,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator '400': description: The server could not understand the request due to invalid syntax. content: @@ -326,6 +334,112 @@ paths: x-requirements: scope: bot_self:webhook:write /bots: + get: + operationId: BotOperations_listBots + description: |- + Список ботов + + Метод для получения списка ботов. Возвращаются только боты, доступные вам для редактирования: созданные вами и те, чьи настройки открывают вам доступ к редактированию. + parameters: + - name: query + in: query + required: false + description: Поисковая фраза для фильтрации ботов по имени + schema: + type: string + example: задач + example: задач + explode: false + - name: limit + in: query + required: false + description: Количество возвращаемых сущностей за один запрос + schema: + type: integer + format: int32 + minimum: 1 + maximum: 50 + example: 1 + default: 50 + example: 1 + explode: false + - name: cursor + in: query + required: false + description: Курсор для пагинации (из `meta.paginate.next_page`) + schema: + type: string + example: eyJpZCI6MTczODgxNn0 + example: eyJpZCI6MTczODgxNn0 + explode: false + responses: + '200': + description: The request has succeeded. + content: + application/json: + schema: + type: object + required: + - data + - meta + properties: + data: + type: array + items: + $ref: '#/components/schemas/BotResponse' + meta: + $ref: '#/components/schemas/PaginationMeta' + description: Обертка ответа с данными и пагинацией + example: + data: + - id: 1738816 + webhook: + name: Бот задач + nickname: tasks_bot + outgoing_url: https://www.website.com/tasks/new + events: + - message_new + trigger_on: commands + commands: + - /task + scopes: + - messages:create + template: Заказ от {{ client }} на сумму {{ amount }} ₽ + template_engine: liquid + challenge_key: challenge + link_preview_enabled: true + ignore_self_messages: false + events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator + meta: + paginate: + next_page: eyJpZCI6MTczODgxNn0 + '401': + description: Access is unauthorized. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthError' + '402': + description: Client error + content: + application/json: + schema: + $ref: '#/components/schemas/ApiError' + '403': + description: Access is forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthError' + tags: + - Bots + x-paginated: true + x-requirements: + scope: bots:read post: operationId: BotOperations_createBot description: |- @@ -368,6 +482,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator access_token: bm90X2FfcmVhbF90b2tlbg '400': description: The server could not understand the request due to invalid syntax. @@ -465,6 +583,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator '401': description: Access is unauthorized. content: @@ -572,6 +694,57 @@ paths: $ref: '#/components/schemas/BotUpdateRequest' x-requirements: scope: bots:write + delete: + operationId: BotOperations_deleteBot + description: |- + Удаление бота + + Метод для удаления бота. Прежний `access_token` бота сразу инвалидируется, бот исключается из всех чатов, его исходящий вебхук удаляется. + + Удаление доступно создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Владельцы и администраторы чатов удалять бота не могут, даже если им разрешено его редактировать. + + Для удаления бота вам необходимо знать его `id` и указать его в `URL` запроса. + parameters: + - name: id + in: path + required: true + description: Идентификатор бота + schema: + type: integer + format: int32 + example: 1738816 + example: 1738816 + responses: + '204': + description: 'There is no content to send for this request, but the headers may be useful. ' + '401': + description: Access is unauthorized. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthError' + '402': + description: Client error + content: + application/json: + schema: + $ref: '#/components/schemas/ApiError' + '403': + description: Access is forbidden. + content: + application/json: + schema: + $ref: '#/components/schemas/OAuthError' + '404': + description: The server cannot find the requested resource. + content: + application/json: + schema: + $ref: '#/components/schemas/ApiError' + tags: + - Bots + x-requirements: + scope: bots:write /bots/{id}/recreate_token: post: operationId: BotOperations_recreateBotToken @@ -580,7 +753,7 @@ paths: Метод генерирует боту новый `access_token` и сразу инвалидирует прежний. Используйте его при компрометации токена или плановой ротации секрета в `CI`. - Доступен администратору, владельцу компании или создателю бота. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу. + Ротация доступна создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу. parameters: - name: id in: path @@ -624,6 +797,10 @@ paths: link_preview_enabled: true ignore_self_messages: false events_history_enabled: false + single_chat: false + can_edit: + - admin + who_can_add: creator access_token: bm90X2FfcmVhbF90b2tlbg '401': description: Access is unauthorized. @@ -5440,7 +5617,7 @@ components: description: 'При: dlp_violation_detected' AuditDetailsEmpty: type: object - description: 'Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated' + description: 'Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated, bot_deleted' AuditDetailsInitiator: type: object required: @@ -5687,6 +5864,7 @@ components: - bot_scopes_updated - bot_webhook_settings_updated - bot_token_recreated + - bot_deleted description: Тип аудит-события x-enum-descriptions: user_login: Пользователь успешно вошел в систему @@ -5727,6 +5905,7 @@ components: bot_scopes_updated: Изменены скоупы токена бота bot_webhook_settings_updated: Изменены настройки исходящего вебхука бота bot_token_recreated: Токен бота перевыпущен (ротация) + bot_deleted: Бот удалён AvatarData: type: object required: @@ -5737,6 +5916,15 @@ components: description: URL аватара example: https://pachca-prod.s3.amazonaws.com/uploads/0001/0001/image.jpg description: Данные аватара + BotCanEdit: + type: string + enum: + - admin + - chat_owners + description: Роль, которой разрешено редактировать настройки бота + x-enum-descriptions: + admin: Администраторы компании + chat_owners: Владельцы чатов, в которые добавлен бот BotCreateRequest: type: object required: @@ -5814,6 +6002,24 @@ components: description: Сохранять историю событий бота для последующего получения через метод истории событий example: false default: false + who_can_add: + allOf: + - $ref: '#/components/schemas/BotWhoCanAdd' + description: Кто может добавлять бота в чаты + example: creator + default: creator + can_edit: + type: array + items: + $ref: '#/components/schemas/BotCanEdit' + description: Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель. + example: + - admin + single_chat: + type: boolean + description: 'Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется.' + example: false + default: false required: - name description: Объект параметров вебхука создаваемого бота @@ -5858,6 +6064,9 @@ components: - company_member_delete - company_member_update - bill_created + - video_call_started + - video_call_finished + - video_call_recording_ready description: Событие исходящего вебхука бота x-enum-descriptions: message_new: Новое сообщение @@ -5989,6 +6198,19 @@ components: description: Сохранять историю событий бота для последующего получения через метод истории событий example: false default: false + who_can_add: + allOf: + - $ref: '#/components/schemas/BotWhoCanAdd' + description: Кто может добавлять бота в чаты + example: creator + default: creator + can_edit: + type: array + items: + $ref: '#/components/schemas/BotCanEdit' + description: Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель. + example: + - admin description: Объект параметров вебхука редактируемого бота description: Запрос на обновление бота BotWebhook: @@ -6007,6 +6229,9 @@ components: - link_preview_enabled - ignore_self_messages - events_history_enabled + - single_chat + - can_edit + - who_can_add properties: name: type: string @@ -6074,6 +6299,22 @@ components: type: boolean description: Сохранять историю событий бота для последующего получения через метод истории событий example: false + single_chat: + type: boolean + description: 'Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.' + example: false + can_edit: + type: array + items: + $ref: '#/components/schemas/BotCanEdit' + description: Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель. + example: + - admin + who_can_add: + allOf: + - $ref: '#/components/schemas/BotWhoCanAdd' + description: Кто может добавлять бота в чаты + example: creator description: Параметры вебхука бота BotWebhookSelfUpdateRequest: type: object @@ -6091,6 +6332,19 @@ components: - outgoing_url description: Объект параметров вебхука description: Запрос на саморегистрацию вебхука бота + BotWhoCanAdd: + type: string + enum: + - creator + - creator_admin + - creator_admin_user + - anyone + description: Кто может добавлять бота в чаты + x-enum-descriptions: + creator: Только создатель бота + creator_admin: Создатель и администраторы компании + creator_admin_user: Создатель, администраторы и участники компании + anyone: Любой пользователь, в том числе гости Button: type: object required: @@ -7904,10 +8158,12 @@ components: enum: - by_score - alphabetical + - creation description: Сортировка результатов поиска x-enum-descriptions: by_score: По релевантности alphabetical: По алфавиту + creation: По дате создания SortOrder: type: string enum: @@ -8770,6 +9026,107 @@ components: pin_failed: Не удалось закрепить сообщение message_deleted: Сообщение удалено thread_message: Нельзя создать тред для сообщения, которое уже находится в треде + VideoCallEventType: + type: string + enum: + - started + - finished + - recording_ready + description: Тип события видеозвонка + x-enum-descriptions: + started: Видеозвонок начался + finished: Видеозвонок завершился + recording_ready: Запись видеозвонка готова + VideoCallWebhookPayload: + type: object + required: + - type + - event + - video_room_id + - chat_id + - owner_id + - webhook_timestamp + properties: + type: + type: string + enum: + - video_call + description: Тип объекта + example: video_call + x-enum-descriptions: + video_call: Для видеозвонков всегда video_call + event: + allOf: + - $ref: '#/components/schemas/VideoCallEventType' + description: Тип события + example: started + video_room_id: + type: integer + format: int32 + description: Идентификатор видеозвонка + example: 9012 + chat_id: + type: integer + format: int32 + description: Идентификатор чата, в котором проходит видеозвонок + example: 23438 + owner_id: + type: integer + format: int32 + description: Идентификатор пользователя, начавшего видеозвонок + example: 2345 + thread: + type: object + allOf: + - $ref: '#/components/schemas/WebhookVideoCallThread' + nullable: true + description: Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде. + started_at: + type: string + format: date-time + description: Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished. + example: '2025-05-15T14:30:00.000Z' + finished_at: + type: string + format: date-time + description: Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished. + example: '2025-05-15T14:45:00.000Z' + duration: + type: integer + format: int32 + description: Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи. + example: 900 + members: + type: array + items: + $ref: '#/components/schemas/WebhookVideoCallMember' + description: Список участников звонка. Присутствует для события finished. + recording_id: + type: integer + format: int32 + description: Идентификатор записи. Присутствует для события recording_ready. + example: 4567 + file_id: + type: integer + format: int32 + nullable: true + description: Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан. + example: 89012 + url: + type: string + description: Прямая ссылка на файл записи. Присутствует для события recording_ready. + example: https://api.pachca.com/files/89012 + size: + type: integer + format: int32 + description: Размер файла записи в байтах. Присутствует для события recording_ready. + example: 10485760 + webhook_timestamp: + type: integer + format: int32 + description: Дата и время отправки вебхука (UTC+0) в формате UNIX + example: 1747574400 + description: Структура исходящего вебхука о видеозвонке ViewBlock: type: object required: @@ -9442,8 +9799,61 @@ components: - $ref: '#/components/schemas/ChatMemberWebhookPayload' - $ref: '#/components/schemas/CompanyMemberWebhookPayload' - $ref: '#/components/schemas/LinkSharedWebhookPayload' + - $ref: '#/components/schemas/VideoCallWebhookPayload' description: Объединение всех типов payload вебхуков x-union-deserializer: webhook-payload + WebhookVideoCallMember: + type: object + required: + - user_id + - joined_at + - left_at + properties: + user_id: + type: integer + format: int32 + description: Идентификатор участника + example: 2345 + joined_at: + type: string + format: date-time + description: Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ + example: '2025-05-15T14:30:00.000Z' + left_at: + type: string + format: date-time + description: Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка. + example: '2025-05-15T14:45:00.000Z' + description: Участник видеозвонка + WebhookVideoCallThread: + type: object + required: + - id + - chat_id + - message_id + - message_chat_id + properties: + id: + type: integer + format: int32 + description: Идентификатор треда + example: 12345 + chat_id: + type: integer + format: int32 + description: Идентификатор чата треда + example: 67890 + message_id: + type: integer + format: int32 + description: Идентификатор сообщения, к которому создан тред + example: 268092 + message_chat_id: + type: integer + format: int32 + description: Идентификатор чата сообщения, к которому создан тред + example: 23438 + description: Параметры треда, в котором проходит видеозвонок securitySchemes: BearerAuth: type: http diff --git a/packages/spec/overlay.en.yaml b/packages/spec/overlay.en.yaml index bcd97ea7..8a141840 100644 --- a/packages/spec/overlay.en.yaml +++ b/packages/spec/overlay.en.yaml @@ -54,6 +54,41 @@ actions: - target: $.paths['/bots/{id}'].put.parameters[?(@.name=='id')] update: description: Bot ID + - target: $.paths['/bots'].get + update: + description: >- + List bots + + + Retrieve a list of bots. The response includes only the bots you can edit: those you created and those whose + settings grant you edit access. + - target: $.paths['/bots'].get.parameters[?(@.name=='query')] + update: + description: Search phrase to filter bots by name + - target: $.paths['/bots'].get.parameters[?(@.name=='limit')] + update: + description: Number of entities returned per request + - target: $.paths['/bots'].get.parameters[?(@.name=='cursor')] + update: + description: Pagination cursor (from `meta.paginate.next_page`) + - target: $.paths['/bots/{id}'].delete + update: + description: >- + Delete bot + + + Delete a bot. The bot's previous `access_token` is invalidated immediately, the bot is removed from all chats, + and its outgoing webhook is deleted. + + + Deletion is available to the bot creator, and to a company administrator if the bot's settings grant + administrators edit access. Chat owners and admins cannot delete a bot, even if they are allowed to edit it. + + + To delete a bot you need to know its `id` and specify it in the request `URL`. + - target: $.paths['/bots/{id}'].delete.parameters[?(@.name=='id')] + update: + description: Bot ID - target: $.paths['/chats'].post update: description: |- @@ -1309,6 +1344,7 @@ actions: bot_scopes_updated: Bot token scopes changed bot_webhook_settings_updated: Bot outgoing webhook settings changed bot_token_recreated: Bot token recreated (rotation) + bot_deleted: Bot deleted - target: $.components.schemas.AvatarData update: description: Avatar data @@ -1348,6 +1384,15 @@ actions: - target: $.components.schemas.BotResponse.properties.webhook.properties.events_history_enabled update: description: Save the bot's event history for later retrieval via the event history method + - target: $.components.schemas.BotResponse.properties.webhook.properties.single_chat + update: + description: Restricts the bot to a single group chat. `true` — the bot can be added to one discussion or channel only, `false` — to multiple. Personal chats and threads don't count toward this limit + - target: $.components.schemas.BotResponse.properties.webhook.properties.can_edit + update: + description: Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty array means only the creator can edit. + - target: $.components.schemas.BotResponse.properties.webhook.properties.who_can_add + update: + description: Who can add the bot to chats - target: $.components.schemas.BotCreateResponse.properties.webhook.properties.scopes update: description: Bot token scopes (permissions) @@ -1369,6 +1414,15 @@ actions: - target: $.components.schemas.BotCreateResponse.properties.webhook.properties.events_history_enabled update: description: Save the bot's event history for later retrieval via the event history method + - target: $.components.schemas.BotCreateResponse.properties.webhook.properties.single_chat + update: + description: Restricts the bot to a single group chat. `true` — the bot can be added to one discussion or channel only, `false` — to multiple. Personal chats and threads don't count toward this limit + - target: $.components.schemas.BotCreateResponse.properties.webhook.properties.can_edit + update: + description: Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty array means only the creator can edit. + - target: $.components.schemas.BotCreateResponse.properties.webhook.properties.who_can_add + update: + description: Who can add the bot to chats - target: $.components.schemas.BotUpdateRequest update: description: Bot update request @@ -1414,6 +1468,12 @@ actions: - target: $.components.schemas.BotUpdateRequest.properties.webhook.properties.events_history_enabled update: description: Save the bot's event history for later retrieval via the event history method + - target: $.components.schemas.BotUpdateRequest.properties.webhook.properties.who_can_add + update: + description: Who can add the bot to chats + - target: $.components.schemas.BotUpdateRequest.properties.webhook.properties.can_edit + update: + description: Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty array means only the creator can edit. - target: $.paths['/bots'].post update: description: >- @@ -1468,6 +1528,23 @@ actions: company_member_delete: Employee removed from the company company_member_update: Employee data changed bill_created: Bill created + video_call_started: Video call started + video_call_finished: Video call finished + video_call_recording_ready: Video call recording ready + - target: $.components.schemas.BotWhoCanAdd + update: + description: Who can add the bot to chats + x-enum-descriptions: + creator: Only the bot creator + creator_admin: The creator and company administrators + creator_admin_user: The creator, administrators, and company members + anyone: Anyone, including guests + - target: $.components.schemas.BotCanEdit + update: + description: Role allowed to edit the bot settings + x-enum-descriptions: + admin: Company administrators + chat_owners: Owners of the chats the bot is added to - target: $.components.schemas.BotCreateRequest update: description: Bot creation request @@ -1513,6 +1590,15 @@ actions: - target: $.components.schemas.BotCreateRequest.properties.webhook.properties.events_history_enabled update: description: Save the bot's event history for later retrieval via the event history method + - target: $.components.schemas.BotCreateRequest.properties.webhook.properties.who_can_add + update: + description: Who can add the bot to chats + - target: $.components.schemas.BotCreateRequest.properties.webhook.properties.can_edit + update: + description: Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty array means only the creator can edit. + - target: $.components.schemas.BotCreateRequest.properties.webhook.properties.single_chat + update: + description: Restricts the bot to a single group chat. `true` — the bot can be added to one discussion or channel only, `false` — to multiple. Personal chats and threads don't count toward this limit. Set only on creation and not changed on update. - target: $.components.schemas.BotWebhook update: description: Bot webhook parameters @@ -1555,6 +1641,15 @@ actions: - target: $.components.schemas.BotWebhook.properties.events_history_enabled update: description: Save the bot's event history for later retrieval via the event history method + - target: $.components.schemas.BotWebhook.properties.single_chat + update: + description: Restricts the bot to a single group chat. `true` — the bot can be added to one discussion or channel only, `false` — to multiple. Personal chats and threads don't count toward this limit + - target: $.components.schemas.BotWebhook.properties.can_edit + update: + description: Roles allowed to edit the bot settings in addition to the creator. The creator can always edit. An empty array means only the creator can edit. + - target: $.components.schemas.BotWebhook.properties.who_can_add + update: + description: Who can add the bot to chats - target: $.components.schemas.BotWebhookSelfUpdateRequest update: description: Bot webhook self-registration request @@ -1583,8 +1678,9 @@ actions: compromised or for scheduled secret rotation in `CI`. - Available to a company administrator, the company owner, or the bot creator. Specify the bot's `id` in the - request `URL`. The new token is returned in the response only once — save it right away. + Rotation is available to the bot creator, and to a company administrator if the bot's settings grant + administrators edit access. Specify the bot's `id` in the request `URL`. The new token is returned in the + response only once — save it right away. - target: $.paths['/bots/{id}/recreate_token'].post.parameters[?(@.name=='id')] update: description: Bot ID @@ -2141,6 +2237,120 @@ actions: - target: $.components.schemas.LinkSharedWebhookPayload.properties.webhook_timestamp update: description: Webhook send date and time (UTC+0) in UNIX format + - target: $.components.schemas.WebhookVideoCallThread + update: + description: Parameters of the thread the video call takes place in + - target: $.components.schemas.WebhookVideoCallThread.properties.id + update: + description: Thread ID + - target: $.components.schemas.WebhookVideoCallThread.properties.chat_id + update: + description: Thread chat ID + - target: $.components.schemas.WebhookVideoCallThread.properties.message_id + update: + description: ID of the message the thread was created for + - target: $.components.schemas.WebhookVideoCallThread.properties.message_chat_id + update: + description: Chat ID of the message the thread was created for + - target: $.components.schemas.WebhookVideoCallMember + update: + description: Video call participant + - target: $.components.schemas.WebhookVideoCallMember.properties.user_id + update: + description: Participant ID + - target: $.components.schemas.WebhookVideoCallMember.properties.joined_at + update: + description: First join date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format + - target: $.components.schemas.WebhookVideoCallMember.properties.left_at + update: + description: >- + Leave date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format. If the participant stayed until the + call ended, it matches the call end time. + - target: $.components.schemas.VideoCallWebhookPayload + update: + description: Video call outgoing webhook structure + - target: $.components.schemas.VideoCallWebhookPayload.properties.type + update: + description: Object type + x-enum-descriptions: + video_call: Always video_call for video calls + - target: $.components.schemas.VideoCallWebhookPayload.properties.event + update: + description: Event type + - target: $.components.schemas.VideoCallEventType + update: + description: Video call event type + x-enum-descriptions: + started: Video call started + finished: Video call finished + recording_ready: Video call recording is ready + - target: $.components.schemas.VideoCallWebhookPayload.properties.video_room_id + update: + description: Video call ID + - target: $.components.schemas.VideoCallWebhookPayload.properties.chat_id + update: + description: ID of the chat the video call takes place in + - target: $.components.schemas.VideoCallWebhookPayload.properties.owner_id + update: + description: ID of the user who started the video call + - target: $.components.schemas.VideoCallWebhookPayload.properties.thread + update: + description: Thread parameters object if the video call takes place in a thread. `null` if the call is not in a thread. + - target: $.components.schemas.VideoCallWebhookPayload.properties.thread.properties.id + update: + description: Thread ID + - target: $.components.schemas.VideoCallWebhookPayload.properties.thread.properties.chat_id + update: + description: Thread chat ID + - target: $.components.schemas.VideoCallWebhookPayload.properties.thread.properties.message_id + update: + description: ID of the message the thread was created for + - target: $.components.schemas.VideoCallWebhookPayload.properties.thread.properties.message_chat_id + update: + description: Chat ID of the message the thread was created for + - target: $.components.schemas.VideoCallWebhookPayload.properties.started_at + update: + description: >- + Call start date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format. Present for the started and + finished events. + - target: $.components.schemas.VideoCallWebhookPayload.properties.finished_at + update: + description: >- + Call end date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format. Present for the finished event. + - target: $.components.schemas.VideoCallWebhookPayload.properties.duration + update: + description: >- + Duration in seconds. For the finished event it is the call duration, for recording_ready it is the recording + duration. + - target: $.components.schemas.VideoCallWebhookPayload.properties.members + update: + description: List of call participants. Present for the finished event. + - target: $.components.schemas.VideoCallWebhookPayload.properties.members.items.properties.user_id + update: + description: Participant ID + - target: $.components.schemas.VideoCallWebhookPayload.properties.members.items.properties.joined_at + update: + description: First join date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format + - target: $.components.schemas.VideoCallWebhookPayload.properties.members.items.properties.left_at + update: + description: >- + Leave date and time (ISO-8601, UTC+0) in YYYY-MM-DDThh:mm:ss.sssZ format. If the participant stayed until the + call ended, it matches the call end time. + - target: $.components.schemas.VideoCallWebhookPayload.properties.recording_id + update: + description: Recording ID. Present for the recording_ready event. + - target: $.components.schemas.VideoCallWebhookPayload.properties.file_id + update: + description: Recording file ID. Present for the recording_ready event. `null` if the file is not attached yet. + - target: $.components.schemas.VideoCallWebhookPayload.properties.url + update: + description: Direct link to the recording file. Present for the recording_ready event. + - target: $.components.schemas.VideoCallWebhookPayload.properties.size + update: + description: Recording file size in bytes. Present for the recording_ready event. + - target: $.components.schemas.VideoCallWebhookPayload.properties.webhook_timestamp + update: + description: Webhook send date and time (UTC+0) in UNIX format - target: $.components.schemas.MemberEventType update: description: Webhook event type for members @@ -2582,6 +2792,7 @@ actions: x-enum-descriptions: by_score: By relevance alphabetical: Alphabetically + creation: By creation date - target: $.components.schemas.SortOrder update: description: Sort order diff --git a/packages/spec/scripts/apply-overlay.ts b/packages/spec/scripts/apply-overlay.ts index 7ad2ddcf..ee8dac62 100644 --- a/packages/spec/scripts/apply-overlay.ts +++ b/packages/spec/scripts/apply-overlay.ts @@ -217,6 +217,7 @@ const RU_TO_EN: Record = { 'Разработка': 'Development', 'футболки': 't-shirts', 'Олег': 'Oleg', + 'задач': 'task', 'Петров': 'Petrov', 'Продукт': 'Product', 'Санкт-Петербург': 'Saint Petersburg', diff --git a/packages/spec/typespec.tsp b/packages/spec/typespec.tsp index 32b70c60..6606dd72 100644 --- a/packages/spec/typespec.tsp +++ b/packages/spec/typespec.tsp @@ -289,6 +289,7 @@ enum MessageSortField { @extension("x-enum-descriptions", #{ by_score: "По релевантности", alphabetical: "По алфавиту", + creation: "По дате создания", }) enum SearchSortOrder { @doc("По релевантности") @@ -296,6 +297,9 @@ enum SearchSortOrder { @doc("По алфавиту") alphabetical: "alphabetical", + + @doc("По дате создания") + creation: "creation", } @doc("Доступность чатов для пользователя") @@ -618,6 +622,7 @@ enum ValidationErrorCode { bot_scopes_updated: "Изменены скоупы токена бота", bot_webhook_settings_updated: "Изменены настройки исходящего вебхука бота", bot_token_recreated: "Токен бота перевыпущен (ротация)", + bot_deleted: "Бот удалён", }) enum AuditEventKey { @doc("Пользователь успешно вошел в систему") @@ -733,6 +738,9 @@ enum AuditEventKey { @doc("Токен бота перевыпущен (ротация)") bot_token_recreated: "bot_token_recreated", + + @doc("Бот удалён") + bot_deleted: "bot_deleted", } // ============================================================================ @@ -2703,6 +2711,33 @@ enum BotEventName { company_member_delete: "company_member_delete", company_member_update: "company_member_update", bill_created: "bill_created", + video_call_started: "video_call_started", + video_call_finished: "video_call_finished", + video_call_recording_ready: "video_call_recording_ready", +} + +@doc("Кто может добавлять бота в чаты") +@extension("x-enum-descriptions", #{ + creator: "Только создатель бота", + creator_admin: "Создатель и администраторы компании", + creator_admin_user: "Создатель, администраторы и участники компании", + anyone: "Любой пользователь, в том числе гости", +}) +enum BotWhoCanAdd { + creator: "creator", + creator_admin: "creator_admin", + creator_admin_user: "creator_admin_user", + anyone: "anyone", +} + +@doc("Роль, которой разрешено редактировать настройки бота") +@extension("x-enum-descriptions", #{ + admin: "Администраторы компании", + chat_owners: "Владельцы чатов, в которые добавлен бот", +}) +enum BotCanEdit { + admin: "admin", + chat_owners: "chat_owners", } @doc("Запрос на создание бота") @@ -2760,6 +2795,18 @@ model BotCreateRequest { @doc("Сохранять историю событий бота для последующего получения через метод истории событий") @example(false) events_history_enabled?: boolean = false; + + @doc("Кто может добавлять бота в чаты") + @example(BotWhoCanAdd.creator) + who_can_add?: BotWhoCanAdd = BotWhoCanAdd.creator; + + @doc("Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.") + @example(#[BotCanEdit.admin]) + can_edit?: BotCanEdit[]; + + @doc("Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят. Задаётся только при создании, при редактировании не меняется.") + @example(false) + single_chat?: boolean = false; }; } @@ -2818,6 +2865,14 @@ model BotUpdateRequest { @doc("Сохранять историю событий бота для последующего получения через метод истории событий") @example(false) events_history_enabled?: boolean = false; + + @doc("Кто может добавлять бота в чаты") + @example(BotWhoCanAdd.creator) + who_can_add?: BotWhoCanAdd = BotWhoCanAdd.creator; + + @doc("Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.") + @example(#[BotCanEdit.admin]) + can_edit?: BotCanEdit[]; }; } @@ -2874,6 +2929,18 @@ model BotWebhook { @doc("Сохранять историю событий бота для последующего получения через метод истории событий") @example(false) events_history_enabled: boolean; + + @doc("Ограничивает бота одной беседой или каналом: `true` — бота можно добавить только в один такой чат, `false` — в несколько. Личные чаты и треды в ограничение не входят.") + @example(false) + single_chat: boolean; + + @doc("Роли, которым, помимо создателя, разрешено редактировать настройки бота. Создатель может редактировать всегда. Пустой массив — редактировать может только создатель.") + @example(#[BotCanEdit.admin]) + can_edit: BotCanEdit[]; + + @doc("Кто может добавлять бота в чаты") + @example(BotWhoCanAdd.creator) + who_can_add: BotWhoCanAdd; } @doc("Запрос на саморегистрацию вебхука бота") @@ -2905,7 +2972,7 @@ model BotCreateResponse { access_token: string; } -@doc("Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated") +@doc("Пустые детали. При: user_login, user_logout, user_2fa_fail, user_2fa_success, user_created, user_deleted, chat_created, message_created, message_updated, message_deleted, reaction_created, reaction_deleted, thread_created, audit_events_accessed, bot_token_recreated, bot_deleted") model AuditDetailsEmpty {} @doc("При: user_updated") @@ -3404,6 +3471,121 @@ model LinkSharedWebhookPayload { webhook_timestamp: int32; } +@doc("Тип события видеозвонка") +@extension("x-enum-descriptions", #{ + started: "Видеозвонок начался", + finished: "Видеозвонок завершился", + recording_ready: "Запись видеозвонка готова", +}) +enum VideoCallEventType { + @doc("Видеозвонок начался") + started: "started", + + @doc("Видеозвонок завершился") + finished: "finished", + + @doc("Запись видеозвонка готова") + recording_ready: "recording_ready", +} + +@doc("Параметры треда, в котором проходит видеозвонок") +model WebhookVideoCallThread { + @doc("Идентификатор треда") + @example(12345) + id: int32; + + @doc("Идентификатор чата треда") + @example(67890) + chat_id: int32; + + @doc("Идентификатор сообщения, к которому создан тред") + @example(268092) + message_id: int32; + + @doc("Идентификатор чата сообщения, к которому создан тред") + @example(23438) + message_chat_id: int32; +} + +@doc("Участник видеозвонка") +model WebhookVideoCallMember { + @doc("Идентификатор участника") + @example(2345) + user_id: int32; + + @doc("Дата и время первого подключения к звонку (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ") + @example(utcDateTime.fromISO("2025-05-15T14:30:00.000Z")) + joined_at: utcDateTime; + + @doc("Дата и время выхода из звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Если участник оставался в звонке до его завершения, совпадает с временем окончания звонка.") + @example(utcDateTime.fromISO("2025-05-15T14:45:00.000Z")) + left_at: utcDateTime; +} + +@doc("Структура исходящего вебхука о видеозвонке") +model VideoCallWebhookPayload { + @doc("Тип объекта") + @example("video_call") + @extension("x-enum-descriptions", #{ + video_call: "Для видеозвонков всегда video_call" + }) + type: "video_call"; + + @doc("Тип события") + @example(VideoCallEventType.started) + event: VideoCallEventType; + + @doc("Идентификатор видеозвонка") + @example(9012) + video_room_id: int32; + + @doc("Идентификатор чата, в котором проходит видеозвонок") + @example(23438) + chat_id: int32; + + @doc("Идентификатор пользователя, начавшего видеозвонок") + @example(2345) + owner_id: int32; + + @doc("Объект с параметрами треда, если видеозвонок проходит в треде. `null`, если звонок не в треде.") + thread?: WebhookVideoCallThread | null; + + @doc("Дата и время начала звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для событий started и finished.") + @example(utcDateTime.fromISO("2025-05-15T14:30:00.000Z")) + started_at?: utcDateTime; + + @doc("Дата и время завершения звонка (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ. Присутствует для события finished.") + @example(utcDateTime.fromISO("2025-05-15T14:45:00.000Z")) + finished_at?: utcDateTime; + + @doc("Длительность в секундах. Для события finished — длительность звонка, для recording_ready — длительность записи.") + @example(900) + duration?: int32; + + @doc("Список участников звонка. Присутствует для события finished.") + members?: WebhookVideoCallMember[]; + + @doc("Идентификатор записи. Присутствует для события recording_ready.") + @example(4567) + recording_id?: int32; + + @doc("Идентификатор файла записи. Присутствует для события recording_ready. `null`, если файл ещё не привязан.") + @example(89012) + file_id?: int32 | null; + + @doc("Прямая ссылка на файл записи. Присутствует для события recording_ready.") + @example("https://api.pachca.com/files/89012") + url?: string; + + @doc("Размер файла записи в байтах. Присутствует для события recording_ready.") + @example(10485760) + size?: int32; + + @doc("Дата и время отправки вебхука (UTC+0) в формате UNIX") + @example(1747574400) + webhook_timestamp: int32; +} + @doc("Объединение всех типов payload вебхуков") @extension("x-union-deserializer", "webhook-payload") union WebhookPayloadUnion { @@ -3414,6 +3596,7 @@ union WebhookPayloadUnion { ChatMemberWebhookPayload, CompanyMemberWebhookPayload, LinkSharedWebhookPayload, + VideoCallWebhookPayload, } @doc("Событие исходящего вебхука") @@ -5856,6 +6039,79 @@ interface FormOperations { @tag("Bots") interface BotOperations { + @extension("x-requirements", #{ + scope: "bots:read", + }) + @doc(""" +Список ботов + +Метод для получения списка ботов. Возвращаются только боты, доступные вам для редактирования: созданные вами и те, чьи настройки открывают вам доступ к редактированию. +""") + @extension("x-paginated", true) + @route("/bots") + @get + @opExample(#{ + returnType: #{ + _: 200, + body: #{ + data: #[ + #{ + id: 1738816, + webhook: #{ + name: "Бот задач", + nickname: "tasks_bot", + outgoing_url: "https://www.website.com/tasks/new", + events: #[BotEventName.message_new], + trigger_on: BotTriggerOn.commands, + commands: #["/task"], + scopes: #["messages:create"], + template: "Заказ от {{ client }} на сумму {{ amount }} ₽", + template_engine: BotTemplateEngine.liquid, + challenge_key: "challenge", + link_preview_enabled: true, + ignore_self_messages: false, + events_history_enabled: false, + single_chat: false, + can_edit: #[BotCanEdit.admin], + who_can_add: BotWhoCanAdd.creator, + }, + } + ], + meta: #{ + paginate: #{ + next_page: "eyJpZCI6MTczODgxNn0", + }, + }, + }, + }, + }) + listBots( + @doc("Поисковая фраза для фильтрации ботов по имени") + @extension("example", "задач") + @query query?: string, + @doc("Количество возвращаемых сущностей за один запрос") + @query + @extension("example", 1) + @minValue(1) + @maxValue(50) + limit?: int32 = 50, + @doc("Курсор для пагинации (из `meta.paginate.next_page`)") + @extension("example", "eyJpZCI6MTczODgxNn0") + @query cursor?: string + ): { + @statusCode _: 200; + @body body: PaginatedDataResponse; + } | { + @statusCode _: 401; + @body body: OAuthError; + } | { + @statusCode _: 403; + @body body: OAuthError; + } | { + @statusCode _: 402; + @body body: ApiError; + }; + @extension("x-requirements", #{ scope: "bots:write", }) @@ -5901,6 +6157,9 @@ interface BotOperations { link_preview_enabled: true, ignore_self_messages: false, events_history_enabled: false, + single_chat: false, + can_edit: #[BotCanEdit.admin], + who_can_add: BotWhoCanAdd.creator, }, access_token: "bm90X2FfcmVhbF90b2tlbg", }, @@ -5957,6 +6216,9 @@ interface BotOperations { link_preview_enabled: true, ignore_self_messages: false, events_history_enabled: false, + single_chat: false, + can_edit: #[BotCanEdit.admin], + who_can_add: BotWhoCanAdd.creator, }, }, }, @@ -6025,6 +6287,40 @@ interface BotOperations { @body body: ApiError; }; + @extension("x-requirements", #{ + scope: "bots:write", + }) + @doc(""" +Удаление бота + +Метод для удаления бота. Прежний `access_token` бота сразу инвалидируется, бот исключается из всех чатов, его исходящий вебхук удаляется. + +Удаление доступно создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Владельцы и администраторы чатов удалять бота не могут, даже если им разрешено его редактировать. + +Для удаления бота вам необходимо знать его `id` и указать его в `URL` запроса. +""") + @route("/bots/{id}") + @delete + deleteBot( + @doc("Идентификатор бота") + @extension("example", 1738816) + @path id: int32 + ): { + @statusCode _: 204; + } | { + @statusCode _: 401; + @body body: OAuthError; + } | { + @statusCode _: 403; + @body body: OAuthError; + } | { + @statusCode _: 404; + @body body: ApiError; + } | { + @statusCode _: 402; + @body body: ApiError; + }; + @extension("x-requirements", #{ scope: "bot_self:webhook:write", }) @@ -6062,6 +6358,9 @@ interface BotOperations { link_preview_enabled: true, ignore_self_messages: false, events_history_enabled: false, + single_chat: false, + can_edit: #[BotCanEdit.admin], + who_can_add: BotWhoCanAdd.creator, }, }, }, @@ -6095,7 +6394,7 @@ interface BotOperations { Метод генерирует боту новый `access_token` и сразу инвалидирует прежний. Используйте его при компрометации токена или плановой ротации секрета в `CI`. -Доступен администратору, владельцу компании или создателю бота. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу. +Ротация доступна создателю бота, а также администратору компании, если настройки бота открывают администраторам доступ к редактированию. Укажите `id` бота в `URL` запроса. Новый токен возвращается в ответе только один раз — сохраните его сразу. """) @route("/bots/{id}/recreate_token") @post @@ -6122,6 +6421,9 @@ interface BotOperations { link_preview_enabled: true, ignore_self_messages: false, events_history_enabled: false, + single_chat: false, + can_edit: #[BotCanEdit.admin], + who_can_add: BotWhoCanAdd.creator, }, access_token: "bm90X2FfcmVhbF90b2tlbg", }, @@ -6181,6 +6483,9 @@ interface BotOperations { link_preview_enabled: true, ignore_self_messages: false, events_history_enabled: false, + single_chat: false, + can_edit: #[BotCanEdit.admin], + who_can_add: BotWhoCanAdd.creator, }, access_token: "bm90X2FfcmVhbF90b2tlbg", }, diff --git a/packages/spec/workflows.ts b/packages/spec/workflows.ts index 229e351c..b87a6f2f 100644 --- a/packages/spec/workflows.ts +++ b/packages/spec/workflows.ts @@ -911,6 +911,36 @@ export const WORKFLOWS: Record = { notesEn: 'The new token is returned once. The self path (`POST /bot/recreate_token`) invalidates the very token used for the request — capture the new token from the response in the same operation.', }, + { + title: 'Найти и удалить бота', + titleEn: 'Find and delete a bot', + related: ['Создать бота через API и получить токен'], + relatedEn: ['Create a bot via API and get its token'], + steps: [ + { + description: + 'Пользовательским токеном (скоуп `bots:read`) получи список ботов, доступных тебе для редактирования: созданных тобой и тех, чьи настройки открывают тебе доступ. Фильтруй по имени параметром `query`, следующую страницу бери из `meta.paginate.next_page`', + descriptionEn: + 'With a user token (scope `bots:read`) get the list of bots you can edit: those you created and those whose settings grant you edit access. Filter by name with `query`, take the next page from `meta.paginate.next_page`', + command: 'pachca bots list --query="задач"', + apiMethod: 'GET', + apiPath: '/bots', + }, + { + description: + 'Возьми `id` нужного бота из списка и удали его (скоуп `bots:write`). Доступно администратору, владельцу компании или создателю бота — владельцы чатов удалять бота не могут. Прежний токен инвалидируется сразу, бот исключается из всех чатов, его исходящий вебхук удаляется', + descriptionEn: + 'Take the target bot `id` from the list and delete it (scope `bots:write`). Available to an admin, the company owner or the bot creator — chat owners cannot delete a bot. The previous token is invalidated immediately, the bot is removed from all chats, and its outgoing webhook is deleted', + command: 'pachca bots delete ', + apiMethod: 'DELETE', + apiPath: '/bots/{id}', + }, + ], + notes: + 'Удаление необратимо: токен бота инвалидируется сразу, бот исключается из чатов. Событие фиксируется в журнале аудита как `bot_deleted`.', + notesEn: + 'Deletion is irreversible: the bot token is invalidated immediately and the bot is removed from chats. The event is recorded in the audit log as `bot_deleted`.', + }, { title: 'Обработать входящий вебхук-событие', titleEn: 'Handle incoming webhook event', diff --git a/sdk/csharp/generated/Client.cs b/sdk/csharp/generated/Client.cs index 0188119d..c27467b2 100644 --- a/sdk/csharp/generated/Client.cs +++ b/sdk/csharp/generated/Client.cs @@ -133,6 +133,23 @@ public override async System.Threading.Tasks.Task> GetAuditEven public class BotsService { + public virtual async System.Threading.Tasks.Task ListBotsAsync( + string? query = null, + int? limit = null, + string? cursor = null, + CancellationToken cancellationToken = default) + { + throw new NotImplementedException("Bots.listBots is not implemented"); + } + + public virtual async System.Threading.Tasks.Task> ListBotsAllAsync( + string? query = null, + int? limit = null, + CancellationToken cancellationToken = default) + { + throw new NotImplementedException("Bots.listBotsAll is not implemented"); + } + public virtual async System.Threading.Tasks.Task GetBotAsync(int id, CancellationToken cancellationToken = default) { throw new NotImplementedException("Bots.getBot is not implemented"); @@ -249,6 +266,11 @@ public virtual async System.Threading.Tasks.Task UpdateBotAsync( throw new NotImplementedException("Bots.updateBot is not implemented"); } + public virtual async System.Threading.Tasks.Task DeleteBotAsync(int id, CancellationToken cancellationToken = default) + { + throw new NotImplementedException("Bots.deleteBot is not implemented"); + } + public virtual async System.Threading.Tasks.Task DeleteWebhookEventAsync(string id, CancellationToken cancellationToken = default) { throw new NotImplementedException("Bots.deleteWebhookEvent is not implemented"); @@ -266,6 +288,53 @@ internal BotsServiceImpl(string baseUrl, HttpClient client) _client = client; } + public override async System.Threading.Tasks.Task ListBotsAsync( + string? query = null, + int? limit = null, + string? cursor = null, + CancellationToken cancellationToken = default) + { + var queryParts = new List(); + if (query != null) + queryParts.Add($"query={Uri.EscapeDataString(query)}"); + if (limit != null) + queryParts.Add($"limit={Uri.EscapeDataString(limit.Value.ToString()!)}"); + if (cursor != null) + queryParts.Add($"cursor={Uri.EscapeDataString(cursor)}"); + var url = $"{_baseUrl}/bots" + (queryParts.Count > 0 ? "?" + string.Join("&", queryParts) : ""); + using var request = new HttpRequestMessage(HttpMethod.Get, url); + using var response = await PachcaUtils.SendWithRetryAsync(_client, request, cancellationToken).ConfigureAwait(false); + var json = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + switch ((int)response.StatusCode) + { + case 200: + return PachcaUtils.Deserialize(json); + case 401: + throw PachcaUtils.Deserialize(json); + default: + throw PachcaUtils.Deserialize(json); + } + } + + public override async System.Threading.Tasks.Task> ListBotsAllAsync( + string? query = null, + int? limit = null, + CancellationToken cancellationToken = default) + { + var items = new List(); + string? cursor = null; + var hasNext = true; + while (hasNext) + { + var response = await ListBotsAsync(query: query, limit: limit, cursor: cursor, cancellationToken: cancellationToken).ConfigureAwait(false); + items.AddRange(response.Data); + if (response.Data.Count == 0) break; + cursor = response.Meta.Paginate.NextPage; + hasNext = response.Meta.Paginate.HasNext ?? true; + } + return items; + } + public override async System.Threading.Tasks.Task GetBotAsync(int id, CancellationToken cancellationToken = default) { var url = $"{_baseUrl}/bots/{id}"; @@ -417,6 +486,23 @@ public override async System.Threading.Tasks.Task UpdateBotAsync( } } + public override async System.Threading.Tasks.Task DeleteBotAsync(int id, CancellationToken cancellationToken = default) + { + var url = $"{_baseUrl}/bots/{id}"; + using var request = new HttpRequestMessage(HttpMethod.Delete, url); + using var response = await PachcaUtils.SendWithRetryAsync(_client, request, cancellationToken).ConfigureAwait(false); + var json = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + switch ((int)response.StatusCode) + { + case 204: + return; + case 401: + throw PachcaUtils.Deserialize(json); + default: + throw PachcaUtils.Deserialize(json); + } + } + public override async System.Threading.Tasks.Task DeleteWebhookEventAsync(string id, CancellationToken cancellationToken = default) { var url = $"{_baseUrl}/webhooks/events/{id}"; diff --git a/sdk/csharp/generated/Models.cs b/sdk/csharp/generated/Models.cs index ee43cb9f..7c6853aa 100644 --- a/sdk/csharp/generated/Models.cs +++ b/sdk/csharp/generated/Models.cs @@ -88,6 +88,8 @@ public enum AuditEventKey BotWebhookSettingsUpdated, /// Токен бота перевыпущен (ротация) BotTokenRecreated, + /// Бот удалён + BotDeleted, } internal class AuditEventKeyConverter : JsonConverter @@ -135,6 +137,7 @@ public override AuditEventKey Read(ref Utf8JsonReader reader, Type typeToConvert "bot_scopes_updated" => AuditEventKey.BotScopesUpdated, "bot_webhook_settings_updated" => AuditEventKey.BotWebhookSettingsUpdated, "bot_token_recreated" => AuditEventKey.BotTokenRecreated, + "bot_deleted" => AuditEventKey.BotDeleted, _ => throw new JsonException($"Unknown AuditEventKey value: {value}"), }; } @@ -181,6 +184,42 @@ public override void Write(Utf8JsonWriter writer, AuditEventKey value, JsonSeria AuditEventKey.BotScopesUpdated => "bot_scopes_updated", AuditEventKey.BotWebhookSettingsUpdated => "bot_webhook_settings_updated", AuditEventKey.BotTokenRecreated => "bot_token_recreated", + AuditEventKey.BotDeleted => "bot_deleted", + _ => value.ToString(), + }; + writer.WriteStringValue(str); + } +} + +/// Роль, которой разрешено редактировать настройки бота +[JsonConverter(typeof(BotCanEditConverter))] +public enum BotCanEdit +{ + /// Администраторы компании + Admin, + /// Владельцы чатов, в которые добавлен бот + ChatOwners, +} + +internal class BotCanEditConverter : JsonConverter +{ + public override BotCanEdit Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + var value = reader.GetString(); + return value switch + { + "admin" => BotCanEdit.Admin, + "chat_owners" => BotCanEdit.ChatOwners, + _ => throw new JsonException($"Unknown BotCanEdit value: {value}"), + }; + } + + public override void Write(Utf8JsonWriter writer, BotCanEdit value, JsonSerializerOptions options) + { + var str = value switch + { + BotCanEdit.Admin => "admin", + BotCanEdit.ChatOwners => "chat_owners", _ => value.ToString(), }; writer.WriteStringValue(str); @@ -223,6 +262,9 @@ public enum BotEventName CompanyMemberUpdate, /// Создан счёт BillCreated, + VideoCallStarted, + VideoCallFinished, + VideoCallRecordingReady, } internal class BotEventNameConverter : JsonConverter @@ -248,6 +290,9 @@ public override BotEventName Read(ref Utf8JsonReader reader, Type typeToConvert, "company_member_delete" => BotEventName.CompanyMemberDelete, "company_member_update" => BotEventName.CompanyMemberUpdate, "bill_created" => BotEventName.BillCreated, + "video_call_started" => BotEventName.VideoCallStarted, + "video_call_finished" => BotEventName.VideoCallFinished, + "video_call_recording_ready" => BotEventName.VideoCallRecordingReady, _ => throw new JsonException($"Unknown BotEventName value: {value}"), }; } @@ -272,6 +317,9 @@ public override void Write(Utf8JsonWriter writer, BotEventName value, JsonSerial BotEventName.CompanyMemberDelete => "company_member_delete", BotEventName.CompanyMemberUpdate => "company_member_update", BotEventName.BillCreated => "bill_created", + BotEventName.VideoCallStarted => "video_call_started", + BotEventName.VideoCallFinished => "video_call_finished", + BotEventName.VideoCallRecordingReady => "video_call_recording_ready", _ => value.ToString(), }; writer.WriteStringValue(str); @@ -352,6 +400,49 @@ public override void Write(Utf8JsonWriter writer, BotTriggerOn value, JsonSerial } } +/// Кто может добавлять бота в чаты +[JsonConverter(typeof(BotWhoCanAddConverter))] +public enum BotWhoCanAdd +{ + /// Только создатель бота + Creator, + /// Создатель и администраторы компании + CreatorAdmin, + /// Создатель, администраторы и участники компании + CreatorAdminUser, + /// Любой пользователь, в том числе гости + Anyone, +} + +internal class BotWhoCanAddConverter : JsonConverter +{ + public override BotWhoCanAdd Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + var value = reader.GetString(); + return value switch + { + "creator" => BotWhoCanAdd.Creator, + "creator_admin" => BotWhoCanAdd.CreatorAdmin, + "creator_admin_user" => BotWhoCanAdd.CreatorAdminUser, + "anyone" => BotWhoCanAdd.Anyone, + _ => throw new JsonException($"Unknown BotWhoCanAdd value: {value}"), + }; + } + + public override void Write(Utf8JsonWriter writer, BotWhoCanAdd value, JsonSerializerOptions options) + { + var str = value switch + { + BotWhoCanAdd.Creator => "creator", + BotWhoCanAdd.CreatorAdmin => "creator_admin", + BotWhoCanAdd.CreatorAdminUser => "creator_admin_user", + BotWhoCanAdd.Anyone => "anyone", + _ => value.ToString(), + }; + writer.WriteStringValue(str); + } +} + /// Доступность чатов для пользователя [JsonConverter(typeof(ChatAvailabilityConverter))] public enum ChatAvailability @@ -1120,6 +1211,8 @@ public enum SearchSortOrder ByScore, /// По алфавиту Alphabetical, + /// По дате создания + Creation, } internal class SearchSortOrderConverter : JsonConverter @@ -1131,6 +1224,7 @@ public override SearchSortOrder Read(ref Utf8JsonReader reader, Type typeToConve { "by_score" => SearchSortOrder.ByScore, "alphabetical" => SearchSortOrder.Alphabetical, + "creation" => SearchSortOrder.Creation, _ => throw new JsonException($"Unknown SearchSortOrder value: {value}"), }; } @@ -1141,6 +1235,7 @@ public override void Write(Utf8JsonWriter writer, SearchSortOrder value, JsonSer { SearchSortOrder.ByScore => "by_score", SearchSortOrder.Alphabetical => "alphabetical", + SearchSortOrder.Creation => "creation", _ => value.ToString(), }; writer.WriteStringValue(str); @@ -1631,6 +1726,45 @@ public override void Write(Utf8JsonWriter writer, ValidationErrorCode value, Jso } } +/// Тип события видеозвонка +[JsonConverter(typeof(VideoCallEventTypeConverter))] +public enum VideoCallEventType +{ + /// Видеозвонок начался + Started, + /// Видеозвонок завершился + Finished, + /// Запись видеозвонка готова + RecordingReady, +} + +internal class VideoCallEventTypeConverter : JsonConverter +{ + public override VideoCallEventType Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + { + var value = reader.GetString(); + return value switch + { + "started" => VideoCallEventType.Started, + "finished" => VideoCallEventType.Finished, + "recording_ready" => VideoCallEventType.RecordingReady, + _ => throw new JsonException($"Unknown VideoCallEventType value: {value}"), + }; + } + + public override void Write(Utf8JsonWriter writer, VideoCallEventType value, JsonSerializerOptions options) + { + var str = value switch + { + VideoCallEventType.Started => "started", + VideoCallEventType.Finished => "finished", + VideoCallEventType.RecordingReady => "recording_ready", + _ => value.ToString(), + }; + writer.WriteStringValue(str); + } +} + /// Тип события webhook [JsonConverter(typeof(WebhookEventTypeConverter))] public enum WebhookEventType @@ -2032,6 +2166,7 @@ public override WebhookPayloadUnion Read(ref Utf8JsonReader reader, Type typeToC "view" => JsonSerializer.Deserialize(raw, options)!, "chat_member" => JsonSerializer.Deserialize(raw, options)!, "company_member" => JsonSerializer.Deserialize(raw, options)!, + "video_call" => JsonSerializer.Deserialize(raw, options)!, _ => throw new JsonException($"Unknown WebhookPayloadUnion type: {type}") }; } @@ -2186,6 +2321,40 @@ public class LinkSharedWebhookPayload : WebhookPayloadUnion public int WebhookTimestamp { get; set; } = default!; } +public class VideoCallWebhookPayload : WebhookPayloadUnion +{ + [JsonPropertyName("type")] + public override string Type => "video_call"; + [JsonPropertyName("event")] + public VideoCallEventType @Event { get; set; } = default!; + [JsonPropertyName("video_room_id")] + public int VideoRoomId { get; set; } = default!; + [JsonPropertyName("chat_id")] + public int ChatId { get; set; } = default!; + [JsonPropertyName("owner_id")] + public int OwnerId { get; set; } = default!; + [JsonPropertyName("thread")] + public WebhookVideoCallThread? Thread { get; set; } + [JsonPropertyName("started_at")] + public DateTimeOffset? StartedAt { get; set; } + [JsonPropertyName("finished_at")] + public DateTimeOffset? FinishedAt { get; set; } + [JsonPropertyName("duration")] + public int? Duration { get; set; } + [JsonPropertyName("members")] + public List? Members { get; set; } + [JsonPropertyName("recording_id")] + public int? RecordingId { get; set; } + [JsonPropertyName("file_id")] + public int? FileId { get; set; } + [JsonPropertyName("url")] + public string? Url { get; set; } + [JsonPropertyName("size")] + public int? Size { get; set; } + [JsonPropertyName("webhook_timestamp")] + public int WebhookTimestamp { get; set; } = default!; +} + public class AccessTokenInfo { [JsonPropertyName("id")] @@ -2305,6 +2474,12 @@ public class BotCreateRequestWebhook public bool? IgnoreSelfMessages { get; set; } [JsonPropertyName("events_history_enabled")] public bool? EventsHistoryEnabled { get; set; } + [JsonPropertyName("who_can_add")] + public BotWhoCanAdd? WhoCanAdd { get; set; } + [JsonPropertyName("can_edit")] + public List? CanEdit { get; set; } + [JsonPropertyName("single_chat")] + public bool? SingleChat { get; set; } } public class BotCreateRequest @@ -2359,6 +2534,10 @@ public class BotUpdateRequestWebhook public bool? IgnoreSelfMessages { get; set; } [JsonPropertyName("events_history_enabled")] public bool? EventsHistoryEnabled { get; set; } + [JsonPropertyName("who_can_add")] + public BotWhoCanAdd? WhoCanAdd { get; set; } + [JsonPropertyName("can_edit")] + public List? CanEdit { get; set; } } public class BotUpdateRequest @@ -2395,6 +2574,12 @@ public class BotWebhook public bool IgnoreSelfMessages { get; set; } = default!; [JsonPropertyName("events_history_enabled")] public bool EventsHistoryEnabled { get; set; } = default!; + [JsonPropertyName("single_chat")] + public bool SingleChat { get; set; } = default!; + [JsonPropertyName("can_edit")] + public List CanEdit { get; set; } = default!; + [JsonPropertyName("who_can_add")] + public BotWhoCanAdd WhoCanAdd { get; set; } = default!; } public class BotWebhookSelfUpdateRequestWebhook @@ -3249,6 +3434,28 @@ public class WebhookMessageThread public int MessageChatId { get; set; } = default!; } +public class WebhookVideoCallMember +{ + [JsonPropertyName("user_id")] + public int UserId { get; set; } = default!; + [JsonPropertyName("joined_at")] + public DateTimeOffset JoinedAt { get; set; } = default!; + [JsonPropertyName("left_at")] + public DateTimeOffset LeftAt { get; set; } = default!; +} + +public class WebhookVideoCallThread +{ + [JsonPropertyName("id")] + public int Id { get; set; } = default!; + [JsonPropertyName("chat_id")] + public int ChatId { get; set; } = default!; + [JsonPropertyName("message_id")] + public int MessageId { get; set; } = default!; + [JsonPropertyName("message_chat_id")] + public int MessageChatId { get; set; } = default!; +} + public class UpdateProfileAvatarRequest { [JsonIgnore] @@ -3269,6 +3476,14 @@ public class GetAuditEventsResponse public PaginationMeta Meta { get; set; } = default!; } +public class ListBotsResponse +{ + [JsonPropertyName("data")] + public List Data { get; set; } = new(); + [JsonPropertyName("meta")] + public PaginationMeta Meta { get; set; } = default!; +} + public class ListChatsResponse { [JsonPropertyName("data")] diff --git a/sdk/csharp/generated/examples.json b/sdk/csharp/generated/examples.json index b7c90dcf..3832a3af 100644 --- a/sdk/csharp/generated/examples.json +++ b/sdk/csharp/generated/examples.json @@ -12,9 +12,13 @@ "AuditEventKey" ] }, + "BotOperations_listBots": { + "usage": "var response = await client.Bots.ListBotsAsync(\"задач\", 1, \"eyJpZCI6MTczODgxNn0\");", + "output": "ListBotsResponse(Data: List, Meta: PaginationMeta)" + }, "BotOperations_getBot": { "usage": "var response = await client.Bots.GetBotAsync(1738816);", - "output": "BotResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool))" + "output": "BotResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: List, WhoCanAdd: BotWhoCanAdd))" }, "BotOperations_getWebhookEvents": { "usage": "var response = await client.Bots.GetWebhookEventsAsync(1, \"eyJpZCI6MTAsImRpciI6ImFzYyJ9\");", @@ -31,42 +35,49 @@ }, "BotOperations_selfRecreateBotToken": { "usage": "var response = await client.Bots.SelfRecreateBotTokenAsync();", - "output": "BotCreateResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool), AccessToken: string)" + "output": "BotCreateResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: List, WhoCanAdd: BotWhoCanAdd), AccessToken: string)" }, "BotOperations_createBot": { - "usage": "var request = new BotCreateRequest\n{\n Webhook = new BotCreateRequestWebhook\n {\n Name = \"Бот задач\",\n Nickname = \"tasks_bot\",\n OutgoingUrl = \"https://www.website.com/tasks/new\",\n Events = new List { BotEventName.MessageNew },\n TriggerOn = BotTriggerOn.Commands,\n Commands = new List { \"example\" },\n Scopes = new List { \"example\" },\n Template = \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n TemplateEngine = BotTemplateEngine.Liquid,\n ChallengeKey = \"challenge\",\n LinkPreviewEnabled = true,\n IgnoreSelfMessages = false,\n EventsHistoryEnabled = false\n }\n};\nvar response = await client.Bots.CreateBotAsync(request);", - "output": "BotCreateResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool), AccessToken: string)", + "usage": "var request = new BotCreateRequest\n{\n Webhook = new BotCreateRequestWebhook\n {\n Name = \"Бот задач\",\n Nickname = \"tasks_bot\",\n OutgoingUrl = \"https://www.website.com/tasks/new\",\n Events = new List { BotEventName.MessageNew },\n TriggerOn = BotTriggerOn.Commands,\n Commands = new List { \"example\" },\n Scopes = new List { \"example\" },\n Template = \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n TemplateEngine = BotTemplateEngine.Liquid,\n ChallengeKey = \"challenge\",\n LinkPreviewEnabled = true,\n IgnoreSelfMessages = false,\n EventsHistoryEnabled = false,\n WhoCanAdd = BotWhoCanAdd.Creator,\n CanEdit = new List { BotCanEdit.Admin },\n SingleChat = false\n }\n};\nvar response = await client.Bots.CreateBotAsync(request);", + "output": "BotCreateResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: List, WhoCanAdd: BotWhoCanAdd), AccessToken: string)", "imports": [ + "BotCanEdit", "BotCreateRequest", "BotCreateRequestWebhook", "BotEventName", "BotTemplateEngine", - "BotTriggerOn" + "BotTriggerOn", + "BotWhoCanAdd" ] }, "BotOperations_recreateBotToken": { "usage": "var response = await client.Bots.RecreateBotTokenAsync(1738816);", - "output": "BotCreateResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool), AccessToken: string)" + "output": "BotCreateResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: List, WhoCanAdd: BotWhoCanAdd), AccessToken: string)" }, "BotOperations_selfUpdateBotWebhook": { "usage": "var request = new BotWebhookSelfUpdateRequest { Webhook = new BotWebhookSelfUpdateRequestWebhook { OutgoingUrl = \"https://www.website.com/tasks/new\" } };\nvar response = await client.Bots.SelfUpdateBotWebhookAsync(request);", - "output": "BotResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool))", + "output": "BotResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: List, WhoCanAdd: BotWhoCanAdd))", "imports": [ "BotWebhookSelfUpdateRequest", "BotWebhookSelfUpdateRequestWebhook" ] }, "BotOperations_updateBot": { - "usage": "var request = new BotUpdateRequest\n{\n Webhook = new BotUpdateRequestWebhook\n {\n Name = \"Бот задач\",\n Nickname = \"tasks_bot\",\n OutgoingUrl = \"https://www.website.com/tasks/new\",\n Events = new List { BotEventName.MessageNew },\n TriggerOn = BotTriggerOn.Commands,\n Commands = new List { \"example\" },\n Scopes = new List { \"example\" },\n Template = \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n TemplateEngine = BotTemplateEngine.Liquid,\n ChallengeKey = \"challenge\",\n LinkPreviewEnabled = true,\n IgnoreSelfMessages = false,\n EventsHistoryEnabled = false\n }\n};\nvar response = await client.Bots.UpdateBotAsync(1738816, request);", - "output": "BotResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool))", + "usage": "var request = new BotUpdateRequest\n{\n Webhook = new BotUpdateRequestWebhook\n {\n Name = \"Бот задач\",\n Nickname = \"tasks_bot\",\n OutgoingUrl = \"https://www.website.com/tasks/new\",\n Events = new List { BotEventName.MessageNew },\n TriggerOn = BotTriggerOn.Commands,\n Commands = new List { \"example\" },\n Scopes = new List { \"example\" },\n Template = \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n TemplateEngine = BotTemplateEngine.Liquid,\n ChallengeKey = \"challenge\",\n LinkPreviewEnabled = true,\n IgnoreSelfMessages = false,\n EventsHistoryEnabled = false,\n WhoCanAdd = BotWhoCanAdd.Creator,\n CanEdit = new List { BotCanEdit.Admin }\n }\n};\nvar response = await client.Bots.UpdateBotAsync(1738816, request);", + "output": "BotResponse(Id: int, Webhook: BotWebhook(Name: string, Nickname: string, OutgoingUrl: string?, Events: List, TriggerOn: BotTriggerOn, Commands: List, Scopes: List, Template: string?, TemplateEngine: BotTemplateEngine, ChallengeKey: string?, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: List, WhoCanAdd: BotWhoCanAdd))", "imports": [ + "BotCanEdit", "BotEventName", "BotTemplateEngine", "BotTriggerOn", "BotUpdateRequest", - "BotUpdateRequestWebhook" + "BotUpdateRequestWebhook", + "BotWhoCanAdd" ] }, + "BotOperations_deleteBot": { + "usage": "await client.Bots.DeleteBotAsync(1738816);" + }, "BotOperations_deleteWebhookEvent": { "usage": "await client.Bots.DeleteWebhookEventAsync(\"01KAJZ2XDSS2S3DSW9EXJZ0TBV\");" }, diff --git a/sdk/go/generated/client.go b/sdk/go/generated/client.go index 42bd9c67..37d9a4a5 100644 --- a/sdk/go/generated/client.go +++ b/sdk/go/generated/client.go @@ -135,6 +135,8 @@ func (s *SecurityServiceImpl) GetAuditEventsAll(ctx context.Context, params *Get } type BotsService interface { + ListBots(ctx context.Context, params *ListBotsParams) (*ListBotsResponse, error) + ListBotsAll(ctx context.Context, params *ListBotsParams) ([]BotResponse, error) GetBot(ctx context.Context, id int32) (*BotResponse, error) GetWebhookEvents(ctx context.Context, params *GetWebhookEventsParams) (*GetWebhookEventsResponse, error) GetWebhookEventsAll(ctx context.Context, params *GetWebhookEventsParams) ([]WebhookEvent, error) @@ -145,6 +147,7 @@ type BotsService interface { RecreateBotToken(ctx context.Context, id int32) (*BotCreateResponse, error) SelfUpdateBotWebhook(ctx context.Context, request BotWebhookSelfUpdateRequest) (*BotResponse, error) UpdateBot(ctx context.Context, id int32, request BotUpdateRequest) (*BotResponse, error) + DeleteBot(ctx context.Context, id int32) error DeleteWebhookEvent(ctx context.Context, id string) error } @@ -157,6 +160,14 @@ type PollWebhookEventsOptions struct { type BotsServiceStub struct{} +func (s *BotsServiceStub) ListBots(ctx context.Context, params *ListBotsParams) (*ListBotsResponse, error) { + return nil, NotImplementedError{Method: "Bots.listBots"} +} + +func (s *BotsServiceStub) ListBotsAll(ctx context.Context, params *ListBotsParams) ([]BotResponse, error) { + return nil, NotImplementedError{Method: "Bots.listBotsAll"} +} + func (s *BotsServiceStub) GetBot(ctx context.Context, id int32) (*BotResponse, error) { return nil, NotImplementedError{Method: "Bots.getBot"} } @@ -197,6 +208,10 @@ func (s *BotsServiceStub) UpdateBot(ctx context.Context, id int32, request BotUp return nil, NotImplementedError{Method: "Bots.updateBot"} } +func (s *BotsServiceStub) DeleteBot(ctx context.Context, id int32) error { + return NotImplementedError{Method: "Bots.deleteBot"} +} + func (s *BotsServiceStub) DeleteWebhookEvent(ctx context.Context, id string) error { return NotImplementedError{Method: "Bots.deleteWebhookEvent"} } @@ -206,6 +221,79 @@ type BotsServiceImpl struct { client *http.Client } +func (s *BotsServiceImpl) ListBots(ctx context.Context, params *ListBotsParams) (*ListBotsResponse, error) { + u, err := url.Parse(fmt.Sprintf("%s/bots", s.baseURL)) + if err != nil { + return nil, err + } + q := u.Query() + if params != nil && params.Query != nil { + q.Set("query", fmt.Sprintf("%v", *params.Query)) + } + if params != nil && params.Limit != nil { + q.Set("limit", fmt.Sprintf("%v", *params.Limit)) + } + if params != nil && params.Cursor != nil { + q.Set("cursor", fmt.Sprintf("%v", *params.Cursor)) + } + u.RawQuery = q.Encode() + req, err := http.NewRequestWithContext(ctx, "GET", u.String(), nil) + if err != nil { + return nil, err + } + resp, err := doWithRetry(s.client, req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + switch resp.StatusCode { + case http.StatusOK: + var result ListBotsResponse + if err := json.NewDecoder(resp.Body).Decode(&result); err != nil { + return nil, err + } + return &result, nil + case http.StatusUnauthorized: + var e OAuthError + if err := json.NewDecoder(resp.Body).Decode(&e); err != nil { + e.Err = fmt.Sprintf("HTTP 401: %v", err) + } + return nil, &e + default: + var e ApiError + if err := json.NewDecoder(resp.Body).Decode(&e); err != nil { + return nil, fmt.Errorf("HTTP %d: %w", resp.StatusCode, err) + } + return nil, &e + } +} + +func (s *BotsServiceImpl) ListBotsAll(ctx context.Context, params *ListBotsParams) ([]BotResponse, error) { + if params == nil { + params = &ListBotsParams{} + } + var items []BotResponse + var cursor *string + hasNext := true + for hasNext { + params.Cursor = cursor + result, err := s.ListBots(ctx, params) + if err != nil { + return nil, err + } + items = append(items, result.Data...) + if len(result.Data) == 0 { + return items, nil + } + nextPage := result.Meta.Paginate.NextPage + cursor = &nextPage + if result.Meta.Paginate.HasNext != nil { + hasNext = *result.Meta.Paginate.HasNext + } + } + return items, nil +} + func (s *BotsServiceImpl) GetBot(ctx context.Context, id int32) (*BotResponse, error) { req, err := http.NewRequestWithContext(ctx, "GET", fmt.Sprintf("%s/bots/%v", s.baseURL, id), nil) if err != nil { @@ -586,6 +674,34 @@ func (s *BotsServiceImpl) UpdateBot(ctx context.Context, id int32, request BotUp } } +func (s *BotsServiceImpl) DeleteBot(ctx context.Context, id int32) error { + req, err := http.NewRequestWithContext(ctx, "DELETE", fmt.Sprintf("%s/bots/%v", s.baseURL, id), nil) + if err != nil { + return err + } + resp, err := doWithRetry(s.client, req) + if err != nil { + return err + } + defer resp.Body.Close() + switch resp.StatusCode { + case http.StatusNoContent: + return nil + case http.StatusUnauthorized: + var e OAuthError + if err := json.NewDecoder(resp.Body).Decode(&e); err != nil { + e.Err = fmt.Sprintf("HTTP 401: %v", err) + } + return &e + default: + var e ApiError + if err := json.NewDecoder(resp.Body).Decode(&e); err != nil { + return fmt.Errorf("HTTP %d: %w", resp.StatusCode, err) + } + return &e + } +} + func (s *BotsServiceImpl) DeleteWebhookEvent(ctx context.Context, id string) error { req, err := http.NewRequestWithContext(ctx, "DELETE", fmt.Sprintf("%s/webhooks/events/%v", s.baseURL, id), nil) if err != nil { diff --git a/sdk/go/generated/examples.json b/sdk/go/generated/examples.json index 1bbe204c..8b52fc42 100644 --- a/sdk/go/generated/examples.json +++ b/sdk/go/generated/examples.json @@ -13,9 +13,16 @@ "GetAuditEventsParams" ] }, + "BotOperations_listBots": { + "usage": "params := &ListBotsParams{\n\tQuery: Ptr(\"задач\"),\n\tLimit: Ptr(int32(1)),\n\tCursor: Ptr(\"eyJpZCI6MTczODgxNn0\"),\n}\nresponse, err := client.Bots.ListBots(ctx, params)", + "output": "ListBotsResponse{Data: []BotResponse, Meta: PaginationMeta}", + "imports": [ + "ListBotsParams" + ] + }, "BotOperations_getBot": { "usage": "response, err := client.Bots.GetBot(ctx, int32(1738816))", - "output": "BotResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool}}" + "output": "BotResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: []BotCanEdit, WhoCanAdd: BotWhoCanAdd}}" }, "BotOperations_getWebhookEvents": { "usage": "params := &GetWebhookEventsParams{\n\tLimit: Ptr(int32(1)),\n\tCursor: Ptr(\"eyJpZCI6MTAsImRpciI6ImFzYyJ9\"),\n}\nresponse, err := client.Bots.GetWebhookEvents(ctx, params)", @@ -32,42 +39,49 @@ }, "BotOperations_selfRecreateBotToken": { "usage": "response, err := client.Bots.SelfRecreateBotToken(ctx)", - "output": "BotCreateResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool}, AccessToken: string}" + "output": "BotCreateResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: []BotCanEdit, WhoCanAdd: BotWhoCanAdd}, AccessToken: string}" }, "BotOperations_createBot": { - "usage": "request := BotCreateRequest{\n\tWebhook: BotCreateRequestWebhook{\n\t\tName: \"Бот задач\",\n\t\tNickname: Ptr(\"tasks_bot\"),\n\t\tOutgoingURL: Ptr(\"https://www.website.com/tasks/new\"),\n\t\tEvents: []BotEventName{BotEventNameMessageNew},\n\t\tTriggerOn: Ptr(BotTriggerOnCommands),\n\t\tCommands: []string{\"example\"},\n\t\tScopes: []string{\"example\"},\n\t\tTemplate: Ptr(\"Заказ от {{ client }} на сумму {{ amount }} ₽\"),\n\t\tTemplateEngine: Ptr(BotTemplateEngineLiquid),\n\t\tChallengeKey: Ptr(\"challenge\"),\n\t\tLinkPreviewEnabled: Ptr(true),\n\t\tIgnoreSelfMessages: Ptr(false),\n\t\tEventsHistoryEnabled: Ptr(false),\n\t},\n}\nresponse, err := client.Bots.CreateBot(ctx, request)", - "output": "BotCreateResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool}, AccessToken: string}", + "usage": "request := BotCreateRequest{\n\tWebhook: BotCreateRequestWebhook{\n\t\tName: \"Бот задач\",\n\t\tNickname: Ptr(\"tasks_bot\"),\n\t\tOutgoingURL: Ptr(\"https://www.website.com/tasks/new\"),\n\t\tEvents: []BotEventName{BotEventNameMessageNew},\n\t\tTriggerOn: Ptr(BotTriggerOnCommands),\n\t\tCommands: []string{\"example\"},\n\t\tScopes: []string{\"example\"},\n\t\tTemplate: Ptr(\"Заказ от {{ client }} на сумму {{ amount }} ₽\"),\n\t\tTemplateEngine: Ptr(BotTemplateEngineLiquid),\n\t\tChallengeKey: Ptr(\"challenge\"),\n\t\tLinkPreviewEnabled: Ptr(true),\n\t\tIgnoreSelfMessages: Ptr(false),\n\t\tEventsHistoryEnabled: Ptr(false),\n\t\tWhoCanAdd: Ptr(BotWhoCanAddCreator),\n\t\tCanEdit: []BotCanEdit{BotCanEditAdmin},\n\t\tSingleChat: Ptr(false),\n\t},\n}\nresponse, err := client.Bots.CreateBot(ctx, request)", + "output": "BotCreateResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: []BotCanEdit, WhoCanAdd: BotWhoCanAdd}, AccessToken: string}", "imports": [ + "BotCanEdit", "BotCreateRequest", "BotCreateRequestWebhook", "BotEventName", "BotTemplateEngine", - "BotTriggerOn" + "BotTriggerOn", + "BotWhoCanAdd" ] }, "BotOperations_recreateBotToken": { "usage": "response, err := client.Bots.RecreateBotToken(ctx, int32(1738816))", - "output": "BotCreateResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool}, AccessToken: string}" + "output": "BotCreateResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: []BotCanEdit, WhoCanAdd: BotWhoCanAdd}, AccessToken: string}" }, "BotOperations_selfUpdateBotWebhook": { "usage": "request := BotWebhookSelfUpdateRequest{\n\tWebhook: BotWebhookSelfUpdateRequestWebhook{\n\t\tOutgoingURL: \"https://www.website.com/tasks/new\",\n\t},\n}\nresponse, err := client.Bots.SelfUpdateBotWebhook(ctx, request)", - "output": "BotResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool}}", + "output": "BotResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: []BotCanEdit, WhoCanAdd: BotWhoCanAdd}}", "imports": [ "BotWebhookSelfUpdateRequest", "BotWebhookSelfUpdateRequestWebhook" ] }, "BotOperations_updateBot": { - "usage": "request := BotUpdateRequest{\n\tWebhook: BotUpdateRequestWebhook{\n\t\tName: Ptr(\"Бот задач\"),\n\t\tNickname: Ptr(\"tasks_bot\"),\n\t\tOutgoingURL: Ptr(\"https://www.website.com/tasks/new\"),\n\t\tEvents: []BotEventName{BotEventNameMessageNew},\n\t\tTriggerOn: Ptr(BotTriggerOnCommands),\n\t\tCommands: []string{\"example\"},\n\t\tScopes: []string{\"example\"},\n\t\tTemplate: Ptr(\"Заказ от {{ client }} на сумму {{ amount }} ₽\"),\n\t\tTemplateEngine: Ptr(BotTemplateEngineLiquid),\n\t\tChallengeKey: Ptr(\"challenge\"),\n\t\tLinkPreviewEnabled: Ptr(true),\n\t\tIgnoreSelfMessages: Ptr(false),\n\t\tEventsHistoryEnabled: Ptr(false),\n\t},\n}\nresponse, err := client.Bots.UpdateBot(ctx, int32(1738816), request)", - "output": "BotResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool}}", + "usage": "request := BotUpdateRequest{\n\tWebhook: BotUpdateRequestWebhook{\n\t\tName: Ptr(\"Бот задач\"),\n\t\tNickname: Ptr(\"tasks_bot\"),\n\t\tOutgoingURL: Ptr(\"https://www.website.com/tasks/new\"),\n\t\tEvents: []BotEventName{BotEventNameMessageNew},\n\t\tTriggerOn: Ptr(BotTriggerOnCommands),\n\t\tCommands: []string{\"example\"},\n\t\tScopes: []string{\"example\"},\n\t\tTemplate: Ptr(\"Заказ от {{ client }} на сумму {{ amount }} ₽\"),\n\t\tTemplateEngine: Ptr(BotTemplateEngineLiquid),\n\t\tChallengeKey: Ptr(\"challenge\"),\n\t\tLinkPreviewEnabled: Ptr(true),\n\t\tIgnoreSelfMessages: Ptr(false),\n\t\tEventsHistoryEnabled: Ptr(false),\n\t\tWhoCanAdd: Ptr(BotWhoCanAddCreator),\n\t\tCanEdit: []BotCanEdit{BotCanEditAdmin},\n\t},\n}\nresponse, err := client.Bots.UpdateBot(ctx, int32(1738816), request)", + "output": "BotResponse{ID: int32, Webhook: BotWebhook{Name: string, Nickname: string, OutgoingURL: *string, Events: []BotEventName, TriggerOn: BotTriggerOn, Commands: []string, Scopes: []string, Template: *string, TemplateEngine: BotTemplateEngine, ChallengeKey: *string, LinkPreviewEnabled: bool, IgnoreSelfMessages: bool, EventsHistoryEnabled: bool, SingleChat: bool, CanEdit: []BotCanEdit, WhoCanAdd: BotWhoCanAdd}}", "imports": [ + "BotCanEdit", "BotEventName", "BotTemplateEngine", "BotTriggerOn", "BotUpdateRequest", - "BotUpdateRequestWebhook" + "BotUpdateRequestWebhook", + "BotWhoCanAdd" ] }, + "BotOperations_deleteBot": { + "usage": "client.Bots.DeleteBot(ctx, int32(1738816))" + }, "BotOperations_deleteWebhookEvent": { "usage": "client.Bots.DeleteWebhookEvent(ctx, \"01KAJZ2XDSS2S3DSW9EXJZ0TBV\")" }, diff --git a/sdk/go/generated/types.go b/sdk/go/generated/types.go index b5c6e904..6556b9b6 100644 --- a/sdk/go/generated/types.go +++ b/sdk/go/generated/types.go @@ -49,27 +49,38 @@ const ( AuditEventKeyBotScopesUpdated AuditEventKey = "bot_scopes_updated" // Изменены скоупы токена бота AuditEventKeyBotWebhookSettingsUpdated AuditEventKey = "bot_webhook_settings_updated" // Изменены настройки исходящего вебхука бота AuditEventKeyBotTokenRecreated AuditEventKey = "bot_token_recreated" // Токен бота перевыпущен (ротация) + AuditEventKeyBotDeleted AuditEventKey = "bot_deleted" // Бот удалён +) + +type BotCanEdit string + +const ( + BotCanEditAdmin BotCanEdit = "admin" // Администраторы компании + BotCanEditChatOwners BotCanEdit = "chat_owners" // Владельцы чатов, в которые добавлен бот ) type BotEventName string const ( - BotEventNameMessageNew BotEventName = "message_new" // Новое сообщение - BotEventNameMessageUpdate BotEventName = "message_update" // Сообщение отредактировано - BotEventNameMessageDelete BotEventName = "message_delete" // Сообщение удалено - BotEventNameReactionNew BotEventName = "reaction_new" // Добавлена реакция - BotEventNameReactionDelete BotEventName = "reaction_delete" // Реакция удалена - BotEventNameButtonClick BotEventName = "button_click" // Нажата кнопка - BotEventNameMessageLinkShared BotEventName = "message_link_shared" // В сообщении отправлена ссылка (для unfurl) - BotEventNameChatMemberAdd BotEventName = "chat_member_add" // Участник добавлен в чат - BotEventNameChatMemberRemove BotEventName = "chat_member_remove" // Участник удалён из чата - BotEventNameCompanyMemberInvite BotEventName = "company_member_invite" // Сотрудник приглашён в компанию - BotEventNameCompanyMemberConfirm BotEventName = "company_member_confirm" // Сотрудник подтвердил приглашение - BotEventNameCompanyMemberSuspend BotEventName = "company_member_suspend" // Сотрудник деактивирован - BotEventNameCompanyMemberActivate BotEventName = "company_member_activate" // Сотрудник активирован - BotEventNameCompanyMemberDelete BotEventName = "company_member_delete" // Сотрудник удалён из компании - BotEventNameCompanyMemberUpdate BotEventName = "company_member_update" // Данные сотрудника изменены - BotEventNameBillCreated BotEventName = "bill_created" // Создан счёт + BotEventNameMessageNew BotEventName = "message_new" // Новое сообщение + BotEventNameMessageUpdate BotEventName = "message_update" // Сообщение отредактировано + BotEventNameMessageDelete BotEventName = "message_delete" // Сообщение удалено + BotEventNameReactionNew BotEventName = "reaction_new" // Добавлена реакция + BotEventNameReactionDelete BotEventName = "reaction_delete" // Реакция удалена + BotEventNameButtonClick BotEventName = "button_click" // Нажата кнопка + BotEventNameMessageLinkShared BotEventName = "message_link_shared" // В сообщении отправлена ссылка (для unfurl) + BotEventNameChatMemberAdd BotEventName = "chat_member_add" // Участник добавлен в чат + BotEventNameChatMemberRemove BotEventName = "chat_member_remove" // Участник удалён из чата + BotEventNameCompanyMemberInvite BotEventName = "company_member_invite" // Сотрудник приглашён в компанию + BotEventNameCompanyMemberConfirm BotEventName = "company_member_confirm" // Сотрудник подтвердил приглашение + BotEventNameCompanyMemberSuspend BotEventName = "company_member_suspend" // Сотрудник деактивирован + BotEventNameCompanyMemberActivate BotEventName = "company_member_activate" // Сотрудник активирован + BotEventNameCompanyMemberDelete BotEventName = "company_member_delete" // Сотрудник удалён из компании + BotEventNameCompanyMemberUpdate BotEventName = "company_member_update" // Данные сотрудника изменены + BotEventNameBillCreated BotEventName = "bill_created" // Создан счёт + BotEventNameVideoCallStarted BotEventName = "video_call_started" + BotEventNameVideoCallFinished BotEventName = "video_call_finished" + BotEventNameVideoCallRecordingReady BotEventName = "video_call_recording_ready" ) type BotTemplateEngine string @@ -87,6 +98,15 @@ const ( BotTriggerOnUnfurl BotTriggerOn = "unfurl" // На развёртывание ссылок (link previews) ) +type BotWhoCanAdd string + +const ( + BotWhoCanAddCreator BotWhoCanAdd = "creator" // Только создатель бота + BotWhoCanAddCreatorAdmin BotWhoCanAdd = "creator_admin" // Создатель и администраторы компании + BotWhoCanAddCreatorAdminUser BotWhoCanAdd = "creator_admin_user" // Создатель, администраторы и участники компании + BotWhoCanAddAnyone BotWhoCanAdd = "anyone" // Любой пользователь, в том числе гости +) + type ChatAvailability string const ( @@ -256,6 +276,7 @@ type SearchSortOrder string const ( SearchSortOrderByScore SearchSortOrder = "by_score" // По релевантности SearchSortOrderAlphabetical SearchSortOrder = "alphabetical" // По алфавиту + SearchSortOrderCreation SearchSortOrder = "creation" // По дате создания ) type SortOrder string @@ -365,6 +386,14 @@ const ( ValidationErrorCodeThreadMessage ValidationErrorCode = "thread_message" // Нельзя создать тред для сообщения, которое уже находится в треде ) +type VideoCallEventType string + +const ( + VideoCallEventTypeStarted VideoCallEventType = "started" // Видеозвонок начался + VideoCallEventTypeFinished VideoCallEventType = "finished" // Видеозвонок завершился + VideoCallEventTypeRecordingReady VideoCallEventType = "recording_ready" // Запись видеозвонка готова +) + type WebhookEventType string const ( @@ -531,6 +560,9 @@ type BotCreateRequestWebhook struct { LinkPreviewEnabled *bool `json:"link_preview_enabled,omitempty"` IgnoreSelfMessages *bool `json:"ignore_self_messages,omitempty"` EventsHistoryEnabled *bool `json:"events_history_enabled,omitempty"` + WhoCanAdd *BotWhoCanAdd `json:"who_can_add,omitempty"` + CanEdit []BotCanEdit `json:"can_edit,omitempty"` + SingleChat *bool `json:"single_chat,omitempty"` } func (m BotCreateRequestWebhook) MarshalJSON() ([]byte, error) { @@ -552,6 +584,9 @@ func (m BotCreateRequestWebhook) MarshalJSON() ([]byte, error) { if m.Scopes != nil { raw["scopes"] = m.Scopes } + if m.CanEdit != nil { + raw["can_edit"] = m.CanEdit + } return json.Marshal(raw) } @@ -584,6 +619,8 @@ type BotUpdateRequestWebhook struct { LinkPreviewEnabled *bool `json:"link_preview_enabled,omitempty"` IgnoreSelfMessages *bool `json:"ignore_self_messages,omitempty"` EventsHistoryEnabled *bool `json:"events_history_enabled,omitempty"` + WhoCanAdd *BotWhoCanAdd `json:"who_can_add,omitempty"` + CanEdit []BotCanEdit `json:"can_edit,omitempty"` } func (m BotUpdateRequestWebhook) MarshalJSON() ([]byte, error) { @@ -605,6 +642,9 @@ func (m BotUpdateRequestWebhook) MarshalJSON() ([]byte, error) { if m.Scopes != nil { raw["scopes"] = m.Scopes } + if m.CanEdit != nil { + raw["can_edit"] = m.CanEdit + } return json.Marshal(raw) } @@ -623,6 +663,9 @@ type BotWebhook struct { LinkPreviewEnabled bool `json:"link_preview_enabled"` IgnoreSelfMessages bool `json:"ignore_self_messages"` EventsHistoryEnabled bool `json:"events_history_enabled"` + SingleChat bool `json:"single_chat"` + CanEdit []BotCanEdit `json:"can_edit"` + WhoCanAdd BotWhoCanAdd `json:"who_can_add"` OutgoingURL *string `json:"outgoing_url"` Template *string `json:"template"` ChallengeKey *string `json:"challenge_key"` @@ -1294,6 +1337,40 @@ type UserUpdateRequest struct { User UserUpdateRequestUser `json:"user"` } +type VideoCallWebhookPayload struct { + Type string `json:"type"` // always "video_call" + Event VideoCallEventType `json:"event"` + VideoRoomID int32 `json:"video_room_id"` + ChatID int32 `json:"chat_id"` + OwnerID int32 `json:"owner_id"` + WebhookTimestamp int32 `json:"webhook_timestamp"` + Thread *WebhookVideoCallThread `json:"thread"` + StartedAt *time.Time `json:"started_at,omitempty"` + FinishedAt *time.Time `json:"finished_at,omitempty"` + Duration *int32 `json:"duration,omitempty"` + Members []WebhookVideoCallMember `json:"members,omitempty"` + RecordingID *int32 `json:"recording_id,omitempty"` + FileID *int32 `json:"file_id"` + URL *string `json:"url,omitempty"` + Size *int32 `json:"size,omitempty"` +} + +func (m VideoCallWebhookPayload) MarshalJSON() ([]byte, error) { + type Alias VideoCallWebhookPayload + data, err := json.Marshal(Alias(m)) + if err != nil { + return nil, err + } + var raw map[string]any + if err := json.Unmarshal(data, &raw); err != nil { + return nil, err + } + if m.Members != nil { + raw["members"] = m.Members + } + return json.Marshal(raw) +} + type ViewBlock struct { Type string `json:"type"` Text *string `json:"text,omitempty"` @@ -1508,6 +1585,19 @@ type WebhookMessageThread struct { MessageChatID int32 `json:"message_chat_id"` } +type WebhookVideoCallMember struct { + UserID int32 `json:"user_id"` + JoinedAt time.Time `json:"joined_at"` + LeftAt time.Time `json:"left_at"` +} + +type WebhookVideoCallThread struct { + ID int32 `json:"id"` + ChatID int32 `json:"chat_id"` + MessageID int32 `json:"message_id"` + MessageChatID int32 `json:"message_chat_id"` +} + type UpdateProfileAvatarRequest struct { Image io.Reader `json:"image"` } @@ -1753,6 +1843,7 @@ type WebhookPayloadUnion struct { ChatMemberWebhookPayload *ChatMemberWebhookPayload CompanyMemberWebhookPayload *CompanyMemberWebhookPayload LinkSharedWebhookPayload *LinkSharedWebhookPayload + VideoCallWebhookPayload *VideoCallWebhookPayload } func (u *WebhookPayloadUnion) UnmarshalJSON(data []byte) error { @@ -1785,6 +1876,9 @@ func (u *WebhookPayloadUnion) UnmarshalJSON(data []byte) error { case disc.Type == "company_member": u.CompanyMemberWebhookPayload = &CompanyMemberWebhookPayload{} return json.Unmarshal(data, u.CompanyMemberWebhookPayload) + case disc.Type == "video_call": + u.VideoCallWebhookPayload = &VideoCallWebhookPayload{} + return json.Unmarshal(data, u.VideoCallWebhookPayload) default: return fmt.Errorf("unknown WebhookPayloadUnion type: %s", disc.Type) } @@ -1812,6 +1906,9 @@ func (u WebhookPayloadUnion) MarshalJSON() ([]byte, error) { if u.LinkSharedWebhookPayload != nil { return json.Marshal(u.LinkSharedWebhookPayload) } + if u.VideoCallWebhookPayload != nil { + return json.Marshal(u.VideoCallWebhookPayload) + } return nil, fmt.Errorf("empty WebhookPayloadUnion") } @@ -1827,6 +1924,12 @@ type GetAuditEventsParams struct { Cursor *string } +type ListBotsParams struct { + Query *string + Limit *int32 + Cursor *string +} + type ListChatsParams struct { Sort *ChatSortField Order *SortOrder @@ -1946,6 +2049,11 @@ type GetAuditEventsResponse struct { Meta PaginationMeta `json:"meta"` } +type ListBotsResponse struct { + Data []BotResponse `json:"data"` + Meta PaginationMeta `json:"meta"` +} + type ListChatsResponse struct { Data []Chat `json:"data"` Meta PaginationMeta `json:"meta"` diff --git a/sdk/kotlin/generated/src/main/kotlin/com/pachca/Client.kt b/sdk/kotlin/generated/src/main/kotlin/com/pachca/Client.kt index f2023b2b..861da3b3 100644 --- a/sdk/kotlin/generated/src/main/kotlin/com/pachca/Client.kt +++ b/sdk/kotlin/generated/src/main/kotlin/com/pachca/Client.kt @@ -121,6 +121,18 @@ class SecurityServiceImpl internal constructor( } interface BotsService { + suspend fun listBots( + query: String? = null, + limit: Int? = null, + cursor: String? = null, + ): ListBotsResponse { + throw NotImplementedError("Bots.listBots is not implemented") + } + + suspend fun listBotsAll(query: String? = null, limit: Int? = null): List { + throw NotImplementedError("Bots.listBotsAll is not implemented") + } + suspend fun getBot(id: Int): BotResponse { throw NotImplementedError("Bots.getBot is not implemented") } @@ -153,6 +165,10 @@ interface BotsService { throw NotImplementedError("Bots.updateBot is not implemented") } + suspend fun deleteBot(id: Int) { + throw NotImplementedError("Bots.deleteBot is not implemented") + } + suspend fun deleteWebhookEvent(id: String) { throw NotImplementedError("Bots.deleteWebhookEvent is not implemented") } @@ -162,6 +178,37 @@ class BotsServiceImpl internal constructor( private val baseUrl: String, private val client: HttpClient, ) : BotsService { + override suspend fun listBots( + query: String?, + limit: Int?, + cursor: String?, + ): ListBotsResponse { + val response = client.get("$baseUrl/bots") { + query?.let { parameter("query", it) } + limit?.let { parameter("limit", it) } + cursor?.let { parameter("cursor", it) } + } + return when (response.status.value) { + 200 -> response.body() + 401 -> throw response.body() + else -> throw response.body() + } + } + + override suspend fun listBotsAll(query: String?, limit: Int?): List { + val items = mutableListOf() + var cursor: String? = null + var hasNext = true + while (hasNext) { + val response = listBots(query = query, limit = limit, cursor = cursor) + items.addAll(response.data) + if (response.data.isEmpty()) break + cursor = response.meta.paginate.nextPage + hasNext = response.meta.paginate.hasNext ?: true + } + return items + } + override suspend fun getBot(id: Int): BotResponse { val response = client.get("$baseUrl/bots/$id") return when (response.status.value) { @@ -251,6 +298,15 @@ class BotsServiceImpl internal constructor( } } + override suspend fun deleteBot(id: Int) { + val response = client.delete("$baseUrl/bots/$id") + when (response.status.value) { + 204 -> return + 401 -> throw response.body() + else -> throw response.body() + } + } + override suspend fun deleteWebhookEvent(id: String) { val response = client.delete("$baseUrl/webhooks/events/$id") when (response.status.value) { diff --git a/sdk/kotlin/generated/src/main/kotlin/com/pachca/Models.kt b/sdk/kotlin/generated/src/main/kotlin/com/pachca/Models.kt index e18d9045..5f4d8547 100644 --- a/sdk/kotlin/generated/src/main/kotlin/com/pachca/Models.kt +++ b/sdk/kotlin/generated/src/main/kotlin/com/pachca/Models.kt @@ -103,6 +103,17 @@ enum class AuditEventKey(val value: String) { @SerialName("bot_webhook_settings_updated") BOT_WEBHOOK_SETTINGS_UPDATED("bot_webhook_settings_updated"), /** Токен бота перевыпущен (ротация) */ @SerialName("bot_token_recreated") BOT_TOKEN_RECREATED("bot_token_recreated"), + /** Бот удалён */ + @SerialName("bot_deleted") BOT_DELETED("bot_deleted"), +} + +/** Роль, которой разрешено редактировать настройки бота */ +@Serializable +enum class BotCanEdit(val value: String) { + /** Администраторы компании */ + @SerialName("admin") ADMIN("admin"), + /** Владельцы чатов, в которые добавлен бот */ + @SerialName("chat_owners") CHAT_OWNERS("chat_owners"), } /** Событие исходящего вебхука бота */ @@ -140,6 +151,9 @@ enum class BotEventName(val value: String) { @SerialName("company_member_update") COMPANY_MEMBER_UPDATE("company_member_update"), /** Создан счёт */ @SerialName("bill_created") BILL_CREATED("bill_created"), + @SerialName("video_call_started") VIDEO_CALL_STARTED("video_call_started"), + @SerialName("video_call_finished") VIDEO_CALL_FINISHED("video_call_finished"), + @SerialName("video_call_recording_ready") VIDEO_CALL_RECORDING_READY("video_call_recording_ready"), } /** Шаблонизатор для форматирования входящих вебхуков */ @@ -162,6 +176,19 @@ enum class BotTriggerOn(val value: String) { @SerialName("unfurl") UNFURL("unfurl"), } +/** Кто может добавлять бота в чаты */ +@Serializable +enum class BotWhoCanAdd(val value: String) { + /** Только создатель бота */ + @SerialName("creator") CREATOR("creator"), + /** Создатель и администраторы компании */ + @SerialName("creator_admin") CREATOR_ADMIN("creator_admin"), + /** Создатель, администраторы и участники компании */ + @SerialName("creator_admin_user") CREATOR_ADMIN_USER("creator_admin_user"), + /** Любой пользователь, в том числе гости */ + @SerialName("anyone") ANYONE("anyone"), +} + /** Доступность чатов для пользователя */ @Serializable enum class ChatAvailability(val value: String) { @@ -421,6 +448,8 @@ enum class SearchSortOrder(val value: String) { @SerialName("by_score") BY_SCORE("by_score"), /** По алфавиту */ @SerialName("alphabetical") ALPHABETICAL("alphabetical"), + /** По дате создания */ + @SerialName("creation") CREATION("creation"), } /** Порядок сортировки */ @@ -597,6 +626,17 @@ enum class ValidationErrorCode(val value: String) { @SerialName("thread_message") THREAD_MESSAGE("thread_message"), } +/** Тип события видеозвонка */ +@Serializable +enum class VideoCallEventType(val value: String) { + /** Видеозвонок начался */ + @SerialName("started") STARTED("started"), + /** Видеозвонок завершился */ + @SerialName("finished") FINISHED("finished"), + /** Запись видеозвонка готова */ + @SerialName("recording_ready") RECORDING_READY("recording_ready"), +} + /** Тип события webhook */ @Serializable enum class WebhookEventType(val value: String) { @@ -873,6 +913,7 @@ object WebhookPayloadUnionSerializer : KSerializer { is ChatMemberWebhookPayload -> jsonEncoder.encodeSerializableValue(ChatMemberWebhookPayload.serializer(), value) is CompanyMemberWebhookPayload -> jsonEncoder.encodeSerializableValue(CompanyMemberWebhookPayload.serializer(), value) is LinkSharedWebhookPayload -> jsonEncoder.encodeSerializableValue(LinkSharedWebhookPayload.serializer(), value) + is VideoCallWebhookPayload -> jsonEncoder.encodeSerializableValue(VideoCallWebhookPayload.serializer(), value) } } @@ -889,6 +930,7 @@ object WebhookPayloadUnionSerializer : KSerializer { type == "view" -> jsonDecoder.json.decodeFromJsonElement(ViewSubmitWebhookPayload.serializer(), element) type == "chat_member" -> jsonDecoder.json.decodeFromJsonElement(ChatMemberWebhookPayload.serializer(), element) type == "company_member" -> jsonDecoder.json.decodeFromJsonElement(CompanyMemberWebhookPayload.serializer(), element) + type == "video_call" -> jsonDecoder.json.decodeFromJsonElement(VideoCallWebhookPayload.serializer(), element) else -> error("Unknown WebhookPayloadUnion type: $type") } } @@ -990,6 +1032,26 @@ data class LinkSharedWebhookPayload( val event: String = "link_shared" } +@Serializable +@SerialName("video_call") +data class VideoCallWebhookPayload( + override val type: String = "video_call", + val event: VideoCallEventType, + @SerialName("video_room_id") val videoRoomId: Int, + @SerialName("chat_id") val chatId: Int, + @SerialName("owner_id") val ownerId: Int, + val thread: WebhookVideoCallThread? = null, + @Serializable(with = OffsetDateTimeSerializer::class) @SerialName("started_at") val startedAt: OffsetDateTime? = null, + @Serializable(with = OffsetDateTimeSerializer::class) @SerialName("finished_at") val finishedAt: OffsetDateTime? = null, + val duration: Int? = null, + val members: List? = null, + @SerialName("recording_id") val recordingId: Int? = null, + @SerialName("file_id") val fileId: Int? = null, + val url: String? = null, + val size: Int? = null, + @SerialName("webhook_timestamp") val webhookTimestamp: Int, +) : WebhookPayloadUnion + @Serializable data class AccessTokenInfo( val id: Long, @@ -1070,6 +1132,9 @@ data class BotCreateRequestWebhook( @SerialName("link_preview_enabled") val linkPreviewEnabled: Boolean? = true, @SerialName("ignore_self_messages") val ignoreSelfMessages: Boolean? = false, @SerialName("events_history_enabled") val eventsHistoryEnabled: Boolean? = false, + @SerialName("who_can_add") val whoCanAdd: BotWhoCanAdd? = BotWhoCanAdd.CREATOR, + @SerialName("can_edit") val canEdit: List? = null, + @SerialName("single_chat") val singleChat: Boolean? = false, ) @Serializable @@ -1105,6 +1170,8 @@ data class BotUpdateRequestWebhook( @SerialName("link_preview_enabled") val linkPreviewEnabled: Boolean? = true, @SerialName("ignore_self_messages") val ignoreSelfMessages: Boolean? = false, @SerialName("events_history_enabled") val eventsHistoryEnabled: Boolean? = false, + @SerialName("who_can_add") val whoCanAdd: BotWhoCanAdd? = BotWhoCanAdd.CREATOR, + @SerialName("can_edit") val canEdit: List? = null, ) @Serializable @@ -1127,6 +1194,9 @@ data class BotWebhook( @SerialName("link_preview_enabled") val linkPreviewEnabled: Boolean, @SerialName("ignore_self_messages") val ignoreSelfMessages: Boolean, @SerialName("events_history_enabled") val eventsHistoryEnabled: Boolean, + @SerialName("single_chat") val singleChat: Boolean, + @SerialName("can_edit") val canEdit: List, + @SerialName("who_can_add") val whoCanAdd: BotWhoCanAdd, ) @Serializable @@ -1689,6 +1759,21 @@ data class WebhookMessageThread( @SerialName("message_chat_id") val messageChatId: Int, ) +@Serializable +data class WebhookVideoCallMember( + @SerialName("user_id") val userId: Int, + @Serializable(with = OffsetDateTimeSerializer::class) @SerialName("joined_at") val joinedAt: OffsetDateTime, + @Serializable(with = OffsetDateTimeSerializer::class) @SerialName("left_at") val leftAt: OffsetDateTime, +) + +@Serializable +data class WebhookVideoCallThread( + val id: Int, + @SerialName("chat_id") val chatId: Int, + @SerialName("message_id") val messageId: Int, + @SerialName("message_chat_id") val messageChatId: Int, +) + @Serializable data class UpdateProfileAvatarRequest( @Transient val image: ByteArray = ByteArray(0), @@ -1705,6 +1790,12 @@ data class GetAuditEventsResponse( val meta: PaginationMeta, ) +@Serializable +data class ListBotsResponse( + val data: List, + val meta: PaginationMeta, +) + @Serializable data class ListChatsResponse( val data: List, diff --git a/sdk/kotlin/generated/src/main/kotlin/com/pachca/examples.json b/sdk/kotlin/generated/src/main/kotlin/com/pachca/examples.json index 9ebd58e9..92c740ee 100644 --- a/sdk/kotlin/generated/src/main/kotlin/com/pachca/examples.json +++ b/sdk/kotlin/generated/src/main/kotlin/com/pachca/examples.json @@ -12,9 +12,13 @@ "AuditEventKey" ] }, + "BotOperations_listBots": { + "usage": "val response = client.bots.listBots(query = \"задач\", limit = 1, cursor = \"eyJpZCI6MTczODgxNn0\")", + "output": "ListBotsResponse(data: List, meta: PaginationMeta)" + }, "BotOperations_getBot": { "usage": "val response = client.bots.getBot(id = 1738816)", - "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean))" + "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean, singleChat: Boolean, canEdit: List, whoCanAdd: BotWhoCanAdd))" }, "BotOperations_getWebhookEvents": { "usage": "val response = client.bots.getWebhookEvents(limit = 1, cursor = \"eyJpZCI6MTAsImRpciI6ImFzYyJ9\")", @@ -35,42 +39,49 @@ }, "BotOperations_selfRecreateBotToken": { "usage": "val response = client.bots.selfRecreateBotToken()", - "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean), accessToken: String)" + "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean, singleChat: Boolean, canEdit: List, whoCanAdd: BotWhoCanAdd), accessToken: String)" }, "BotOperations_createBot": { - "usage": "val request = BotCreateRequest(\n webhook = BotCreateRequestWebhook(\n name = \"Бот задач\",\n nickname = \"tasks_bot\",\n outgoingUrl = \"https://www.website.com/tasks/new\",\n events = listOf(BotEventName.MESSAGE_NEW),\n triggerOn = BotTriggerOn.COMMANDS,\n commands = listOf(\"example\"),\n scopes = listOf(\"example\"),\n template = \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine = BotTemplateEngine.LIQUID,\n challengeKey = \"challenge\",\n linkPreviewEnabled = true,\n ignoreSelfMessages = false,\n eventsHistoryEnabled = false\n )\n)\nval response = client.bots.createBot(request = request)", - "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean), accessToken: String)", + "usage": "val request = BotCreateRequest(\n webhook = BotCreateRequestWebhook(\n name = \"Бот задач\",\n nickname = \"tasks_bot\",\n outgoingUrl = \"https://www.website.com/tasks/new\",\n events = listOf(BotEventName.MESSAGE_NEW),\n triggerOn = BotTriggerOn.COMMANDS,\n commands = listOf(\"example\"),\n scopes = listOf(\"example\"),\n template = \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine = BotTemplateEngine.LIQUID,\n challengeKey = \"challenge\",\n linkPreviewEnabled = true,\n ignoreSelfMessages = false,\n eventsHistoryEnabled = false,\n whoCanAdd = BotWhoCanAdd.CREATOR,\n canEdit = listOf(BotCanEdit.ADMIN),\n singleChat = false\n )\n)\nval response = client.bots.createBot(request = request)", + "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean, singleChat: Boolean, canEdit: List, whoCanAdd: BotWhoCanAdd), accessToken: String)", "imports": [ + "BotCanEdit", "BotCreateRequest", "BotCreateRequestWebhook", "BotEventName", "BotTemplateEngine", - "BotTriggerOn" + "BotTriggerOn", + "BotWhoCanAdd" ] }, "BotOperations_recreateBotToken": { "usage": "val response = client.bots.recreateBotToken(id = 1738816)", - "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean), accessToken: String)" + "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean, singleChat: Boolean, canEdit: List, whoCanAdd: BotWhoCanAdd), accessToken: String)" }, "BotOperations_selfUpdateBotWebhook": { "usage": "val request = BotWebhookSelfUpdateRequest(webhook = BotWebhookSelfUpdateRequestWebhook(outgoingUrl = \"https://www.website.com/tasks/new\"))\nval response = client.bots.selfUpdateBotWebhook(request = request)", - "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean))", + "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean, singleChat: Boolean, canEdit: List, whoCanAdd: BotWhoCanAdd))", "imports": [ "BotWebhookSelfUpdateRequest", "BotWebhookSelfUpdateRequestWebhook" ] }, "BotOperations_updateBot": { - "usage": "val request = BotUpdateRequest(\n webhook = BotUpdateRequestWebhook(\n name = \"Бот задач\",\n nickname = \"tasks_bot\",\n outgoingUrl = \"https://www.website.com/tasks/new\",\n events = listOf(BotEventName.MESSAGE_NEW),\n triggerOn = BotTriggerOn.COMMANDS,\n commands = listOf(\"example\"),\n scopes = listOf(\"example\"),\n template = \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine = BotTemplateEngine.LIQUID,\n challengeKey = \"challenge\",\n linkPreviewEnabled = true,\n ignoreSelfMessages = false,\n eventsHistoryEnabled = false\n )\n)\nval response = client.bots.updateBot(id = 1738816, request = request)", - "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean))", + "usage": "val request = BotUpdateRequest(\n webhook = BotUpdateRequestWebhook(\n name = \"Бот задач\",\n nickname = \"tasks_bot\",\n outgoingUrl = \"https://www.website.com/tasks/new\",\n events = listOf(BotEventName.MESSAGE_NEW),\n triggerOn = BotTriggerOn.COMMANDS,\n commands = listOf(\"example\"),\n scopes = listOf(\"example\"),\n template = \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine = BotTemplateEngine.LIQUID,\n challengeKey = \"challenge\",\n linkPreviewEnabled = true,\n ignoreSelfMessages = false,\n eventsHistoryEnabled = false,\n whoCanAdd = BotWhoCanAdd.CREATOR,\n canEdit = listOf(BotCanEdit.ADMIN)\n )\n)\nval response = client.bots.updateBot(id = 1738816, request = request)", + "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: List, triggerOn: BotTriggerOn, commands: List, scopes: List, template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Boolean, ignoreSelfMessages: Boolean, eventsHistoryEnabled: Boolean, singleChat: Boolean, canEdit: List, whoCanAdd: BotWhoCanAdd))", "imports": [ + "BotCanEdit", "BotEventName", "BotTemplateEngine", "BotTriggerOn", "BotUpdateRequest", - "BotUpdateRequestWebhook" + "BotUpdateRequestWebhook", + "BotWhoCanAdd" ] }, + "BotOperations_deleteBot": { + "usage": "client.bots.deleteBot(id = 1738816)" + }, "BotOperations_deleteWebhookEvent": { "usage": "client.bots.deleteWebhookEvent(id = \"01KAJZ2XDSS2S3DSW9EXJZ0TBV\")" }, diff --git a/sdk/python/generated/pachca/client.py b/sdk/python/generated/pachca/client.py index 1ed74b96..bf3a454b 100644 --- a/sdk/python/generated/pachca/client.py +++ b/sdk/python/generated/pachca/client.py @@ -14,6 +14,8 @@ OAuthError, ApiError, AuditEventKey, + ListBotsParams, + ListBotsResponse, BotResponse, GetWebhookEventsParams, GetWebhookEventsResponse, @@ -169,6 +171,18 @@ async def get_audit_events_all( class BotsService: + async def list_bots( + self, + params: ListBotsParams | None = None, + ) -> ListBotsResponse: + raise NotImplementedError("Bots.listBots is not implemented") + + async def list_bots_all( + self, + params: ListBotsParams | None = None, + ) -> list[BotResponse]: + raise NotImplementedError("Bots.listBotsAll is not implemented") + async def get_bot( self, id: int, @@ -277,6 +291,12 @@ async def update_bot( ) -> BotResponse: raise NotImplementedError("Bots.updateBot is not implemented") + async def delete_bot( + self, + id: int, + ) -> None: + raise NotImplementedError("Bots.deleteBot is not implemented") + async def delete_webhook_event( self, id: str, @@ -288,6 +308,50 @@ class BotsServiceImpl(BotsService): def __init__(self, client: httpx.AsyncClient) -> None: self._client = client + async def list_bots( + self, + params: ListBotsParams | None = None, + ) -> ListBotsResponse: + query: dict[str, str] = {} + if params is not None and params.query is not None: + query["query"] = params.query + if params is not None and params.limit is not None: + query["limit"] = str(params.limit) + if params is not None and params.cursor is not None: + query["cursor"] = params.cursor + response = await self._client.get( + "/bots", + params=query, + ) + body = response.json() + match response.status_code: + case 200: + return deserialize(ListBotsResponse, body) + case 401: + raise deserialize(OAuthError, body) + case _: + raise deserialize(ApiError, body) + + async def list_bots_all( + self, + params: ListBotsParams | None = None, + ) -> list[BotResponse]: + items: list[BotResponse] = [] + cursor: str | None = None + has_next = True + while has_next: + if params is None: + params = ListBotsParams() + params.cursor = cursor + response = await self.list_bots(params=params) + items.extend(response.data) + if not response.data: + break + cursor = response.meta.paginate.next_page + reported_has_next = getattr(response.meta.paginate, "has_next", None) + has_next = True if reported_has_next is None else reported_has_next + return items + async def get_bot( self, id: int, @@ -428,6 +492,21 @@ async def update_bot( case _: raise deserialize(ApiError, body) + async def delete_bot( + self, + id: int, + ) -> None: + response = await self._client.delete( + f"/bots/{id}", + ) + match response.status_code: + case 204: + return + case 401: + raise deserialize(OAuthError, response.json()) + case _: + raise deserialize(ApiError, response.json()) + async def delete_webhook_event( self, id: str, diff --git a/sdk/python/generated/pachca/examples.json b/sdk/python/generated/pachca/examples.json index 8854d1a1..db7e912f 100644 --- a/sdk/python/generated/pachca/examples.json +++ b/sdk/python/generated/pachca/examples.json @@ -13,9 +13,16 @@ "GetAuditEventsParams" ] }, + "BotOperations_listBots": { + "usage": "params = ListBotsParams(\n query=\"задач\",\n limit=1,\n cursor=\"eyJpZCI6MTczODgxNn0\"\n)\nresponse = await client.bots.list_bots(params=params)", + "output": "ListBotsResponse(data: list[BotResponse], meta: PaginationMeta)", + "imports": [ + "ListBotsParams" + ] + }, "BotOperations_getBot": { "usage": "response = await client.bots.get_bot(id=1738816)", - "output": "BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool))" + "output": "BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd))" }, "BotOperations_getWebhookEvents": { "usage": "params = GetWebhookEventsParams(limit=1, cursor=\"eyJpZCI6MTAsImRpciI6ImFzYyJ9\")\nresponse = await client.bots.get_webhook_events(params=params)", @@ -32,42 +39,49 @@ }, "BotOperations_selfRecreateBotToken": { "usage": "response = await client.bots.self_recreate_bot_token()", - "output": "BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool), access_token: str)" + "output": "BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd), access_token: str)" }, "BotOperations_createBot": { - "usage": "request = BotCreateRequest(\n webhook=BotCreateRequestWebhook(\n name=\"Бот задач\",\n nickname=\"tasks_bot\",\n outgoing_url=\"https://www.website.com/tasks/new\",\n events=[BotEventName.MESSAGE_NEW],\n trigger_on=BotTriggerOn.COMMANDS,\n commands=[\"example\"],\n scopes=[\"example\"],\n template=\"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n template_engine=BotTemplateEngine.LIQUID,\n challenge_key=\"challenge\",\n link_preview_enabled=True,\n ignore_self_messages=False,\n events_history_enabled=False\n )\n)\nresponse = await client.bots.create_bot(request=request)", - "output": "BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool), access_token: str)", + "usage": "request = BotCreateRequest(\n webhook=BotCreateRequestWebhook(\n name=\"Бот задач\",\n nickname=\"tasks_bot\",\n outgoing_url=\"https://www.website.com/tasks/new\",\n events=[BotEventName.MESSAGE_NEW],\n trigger_on=BotTriggerOn.COMMANDS,\n commands=[\"example\"],\n scopes=[\"example\"],\n template=\"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n template_engine=BotTemplateEngine.LIQUID,\n challenge_key=\"challenge\",\n link_preview_enabled=True,\n ignore_self_messages=False,\n events_history_enabled=False,\n who_can_add=BotWhoCanAdd.CREATOR,\n can_edit=[BotCanEdit.ADMIN],\n single_chat=False\n )\n)\nresponse = await client.bots.create_bot(request=request)", + "output": "BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd), access_token: str)", "imports": [ + "BotCanEdit", "BotCreateRequest", "BotCreateRequestWebhook", "BotEventName", "BotTemplateEngine", - "BotTriggerOn" + "BotTriggerOn", + "BotWhoCanAdd" ] }, "BotOperations_recreateBotToken": { "usage": "response = await client.bots.recreate_bot_token(id=1738816)", - "output": "BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool), access_token: str)" + "output": "BotCreateResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd), access_token: str)" }, "BotOperations_selfUpdateBotWebhook": { "usage": "request = BotWebhookSelfUpdateRequest(webhook=BotWebhookSelfUpdateRequestWebhook(outgoing_url=\"https://www.website.com/tasks/new\"))\nresponse = await client.bots.self_update_bot_webhook(request=request)", - "output": "BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool))", + "output": "BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd))", "imports": [ "BotWebhookSelfUpdateRequest", "BotWebhookSelfUpdateRequestWebhook" ] }, "BotOperations_updateBot": { - "usage": "request = BotUpdateRequest(\n webhook=BotUpdateRequestWebhook(\n name=\"Бот задач\",\n nickname=\"tasks_bot\",\n outgoing_url=\"https://www.website.com/tasks/new\",\n events=[BotEventName.MESSAGE_NEW],\n trigger_on=BotTriggerOn.COMMANDS,\n commands=[\"example\"],\n scopes=[\"example\"],\n template=\"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n template_engine=BotTemplateEngine.LIQUID,\n challenge_key=\"challenge\",\n link_preview_enabled=True,\n ignore_self_messages=False,\n events_history_enabled=False\n )\n)\nresponse = await client.bots.update_bot(id=1738816, request=request)", - "output": "BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool))", + "usage": "request = BotUpdateRequest(\n webhook=BotUpdateRequestWebhook(\n name=\"Бот задач\",\n nickname=\"tasks_bot\",\n outgoing_url=\"https://www.website.com/tasks/new\",\n events=[BotEventName.MESSAGE_NEW],\n trigger_on=BotTriggerOn.COMMANDS,\n commands=[\"example\"],\n scopes=[\"example\"],\n template=\"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n template_engine=BotTemplateEngine.LIQUID,\n challenge_key=\"challenge\",\n link_preview_enabled=True,\n ignore_self_messages=False,\n events_history_enabled=False,\n who_can_add=BotWhoCanAdd.CREATOR,\n can_edit=[BotCanEdit.ADMIN]\n )\n)\nresponse = await client.bots.update_bot(id=1738816, request=request)", + "output": "BotResponse(id: int, webhook: BotWebhook(name: str, nickname: str, outgoing_url: str | None, events: list[BotEventName], trigger_on: BotTriggerOn, commands: list[str], scopes: list[str], template: str | None, template_engine: BotTemplateEngine, challenge_key: str | None, link_preview_enabled: bool, ignore_self_messages: bool, events_history_enabled: bool, single_chat: bool, can_edit: list[BotCanEdit], who_can_add: BotWhoCanAdd))", "imports": [ + "BotCanEdit", "BotEventName", "BotTemplateEngine", "BotTriggerOn", "BotUpdateRequest", - "BotUpdateRequestWebhook" + "BotUpdateRequestWebhook", + "BotWhoCanAdd" ] }, + "BotOperations_deleteBot": { + "usage": "await client.bots.delete_bot(id=1738816)" + }, "BotOperations_deleteWebhookEvent": { "usage": "await client.bots.delete_webhook_event(id=\"01KAJZ2XDSS2S3DSW9EXJZ0TBV\")" }, diff --git a/sdk/python/generated/pachca/models.py b/sdk/python/generated/pachca/models.py index 94643f14..aae53683 100644 --- a/sdk/python/generated/pachca/models.py +++ b/sdk/python/generated/pachca/models.py @@ -46,6 +46,14 @@ class AuditEventKey(StrEnum): BOT_SCOPES_UPDATED = "bot_scopes_updated" # Изменены скоупы токена бота BOT_WEBHOOK_SETTINGS_UPDATED = "bot_webhook_settings_updated" # Изменены настройки исходящего вебхука бота BOT_TOKEN_RECREATED = "bot_token_recreated" # Токен бота перевыпущен (ротация) + BOT_DELETED = "bot_deleted" # Бот удалён + + +class BotCanEdit(StrEnum): + """Роль, которой разрешено редактировать настройки бота""" + + ADMIN = "admin" # Администраторы компании + CHAT_OWNERS = "chat_owners" # Владельцы чатов, в которые добавлен бот class BotEventName(StrEnum): @@ -67,6 +75,9 @@ class BotEventName(StrEnum): COMPANY_MEMBER_DELETE = "company_member_delete" # Сотрудник удалён из компании COMPANY_MEMBER_UPDATE = "company_member_update" # Данные сотрудника изменены BILL_CREATED = "bill_created" # Создан счёт + VIDEO_CALL_STARTED = "video_call_started" + VIDEO_CALL_FINISHED = "video_call_finished" + VIDEO_CALL_RECORDING_READY = "video_call_recording_ready" class BotTemplateEngine(StrEnum): @@ -84,6 +95,15 @@ class BotTriggerOn(StrEnum): UNFURL = "unfurl" # На развёртывание ссылок (link previews) +class BotWhoCanAdd(StrEnum): + """Кто может добавлять бота в чаты""" + + CREATOR = "creator" # Только создатель бота + CREATOR_ADMIN = "creator_admin" # Создатель и администраторы компании + CREATOR_ADMIN_USER = "creator_admin_user" # Создатель, администраторы и участники компании + ANYONE = "anyone" # Любой пользователь, в том числе гости + + class ChatAvailability(StrEnum): """Доступность чатов для пользователя""" @@ -251,6 +271,7 @@ class SearchSortOrder(StrEnum): BY_SCORE = "by_score" # По релевантности ALPHABETICAL = "alphabetical" # По алфавиту + CREATION = "creation" # По дате создания class SortOrder(StrEnum): @@ -360,6 +381,14 @@ class ValidationErrorCode(StrEnum): THREAD_MESSAGE = "thread_message" # Нельзя создать тред для сообщения, которое уже находится в треде +class VideoCallEventType(StrEnum): + """Тип события видеозвонка""" + + STARTED = "started" # Видеозвонок начался + FINISHED = "finished" # Видеозвонок завершился + RECORDING_READY = "recording_ready" # Запись видеозвонка готова + + class WebhookEventType(StrEnum): """Тип события webhook""" @@ -544,6 +573,9 @@ class BotCreateRequestWebhook: link_preview_enabled: bool | None = True ignore_self_messages: bool | None = False events_history_enabled: bool | None = False + who_can_add: BotWhoCanAdd | None = BotWhoCanAdd.CREATOR + can_edit: list[BotCanEdit] | None = None + single_chat: bool | None = False @dataclass @@ -579,6 +611,8 @@ class BotUpdateRequestWebhook: link_preview_enabled: bool | None = True ignore_self_messages: bool | None = False events_history_enabled: bool | None = False + who_can_add: BotWhoCanAdd | None = BotWhoCanAdd.CREATOR + can_edit: list[BotCanEdit] | None = None @dataclass @@ -598,6 +632,9 @@ class BotWebhook: link_preview_enabled: bool ignore_self_messages: bool events_history_enabled: bool + single_chat: bool + can_edit: list[BotCanEdit] + who_can_add: BotWhoCanAdd outgoing_url: str | None = None template: str | None = None challenge_key: str | None = None @@ -1177,6 +1214,25 @@ class UserUpdateRequest: user: UserUpdateRequestUser +@dataclass +class VideoCallWebhookPayload: + type: str # literal "video_call" + event: VideoCallEventType + video_room_id: int + chat_id: int + owner_id: int + webhook_timestamp: int + thread: WebhookVideoCallThread | None = None + started_at: datetime | None = None + finished_at: datetime | None = None + duration: int | None = None + members: list[WebhookVideoCallMember] | None = None + recording_id: int | None = None + file_id: int | None = None + url: str | None = None + size: int | None = None + + @dataclass class ViewBlock: type: str @@ -1347,6 +1403,21 @@ class WebhookMessageThread: message_chat_id: int +@dataclass +class WebhookVideoCallMember: + user_id: int + joined_at: datetime + left_at: datetime + + +@dataclass +class WebhookVideoCallThread: + id: int + chat_id: int + message_id: int + message_chat_id: int + + @dataclass class UpdateProfileAvatarRequest: image: bytes @@ -1363,7 +1434,7 @@ class UpdateUserAvatarRequest: ViewBlockUnion = Union[ViewBlockHeader, ViewBlockPlainText, ViewBlockMarkdown, ViewBlockDivider, ViewBlockInput, ViewBlockSelect, ViewBlockRadio, ViewBlockCheckbox, ViewBlockDate, ViewBlockTime, ViewBlockFileInput] -WebhookPayloadUnion = Union[MessageWebhookPayload, ReactionWebhookPayload, ButtonWebhookPayload, ViewSubmitWebhookPayload, ChatMemberWebhookPayload, CompanyMemberWebhookPayload, LinkSharedWebhookPayload] +WebhookPayloadUnion = Union[MessageWebhookPayload, ReactionWebhookPayload, ButtonWebhookPayload, ViewSubmitWebhookPayload, ChatMemberWebhookPayload, CompanyMemberWebhookPayload, LinkSharedWebhookPayload, VideoCallWebhookPayload] @dataclass @@ -1379,6 +1450,13 @@ class GetAuditEventsParams: cursor: str | None = None +@dataclass +class ListBotsParams: + query: str | None = None + limit: int | None = None + cursor: str | None = None + + @dataclass class ListChatsParams: sort: ChatSortField | None = None @@ -1515,6 +1593,12 @@ class GetAuditEventsResponse: meta: PaginationMeta +@dataclass +class ListBotsResponse: + data: list[BotResponse] + meta: PaginationMeta + + @dataclass class ListChatsResponse: data: list[Chat] diff --git a/sdk/python/generated/pachca/utils.py b/sdk/python/generated/pachca/utils.py index 21352125..919a7810 100644 --- a/sdk/python/generated/pachca/utils.py +++ b/sdk/python/generated/pachca/utils.py @@ -15,6 +15,7 @@ LinkSharedWebhookPayload, MessageWebhookPayload, ReactionWebhookPayload, + VideoCallWebhookPayload, ViewSubmitWebhookPayload, WebhookPayloadUnion, ) @@ -107,6 +108,8 @@ def _webhook_payload_union_deserialize(data: dict) -> WebhookPayloadUnion: return _deserialize_instance(ChatMemberWebhookPayload, data) case ("company_member", _): return _deserialize_instance(CompanyMemberWebhookPayload, data) + case ("video_call", _): + return _deserialize_instance(VideoCallWebhookPayload, data) case _: raise ValueError(f"Unknown WebhookPayloadUnion discriminator: {data.get('type')}") diff --git a/sdk/swift/generated/Sources/Pachca/GeneratedSources/Client.swift b/sdk/swift/generated/Sources/Pachca/GeneratedSources/Client.swift index cd5148cc..498ccbe0 100644 --- a/sdk/swift/generated/Sources/Pachca/GeneratedSources/Client.swift +++ b/sdk/swift/generated/Sources/Pachca/GeneratedSources/Client.swift @@ -83,6 +83,14 @@ public final class SecurityServiceImpl: SecurityService { open class BotsService { public init() {} + open func listBots(query: String? = nil, limit: Int? = nil, cursor: String? = nil) async throws -> ListBotsResponse { + throw pachcaNotImplemented("Bots.listBots") + } + + open func listBotsAll(query: String? = nil, limit: Int? = nil) async throws -> [BotResponse] { + throw pachcaNotImplemented("Bots.listBotsAll") + } + open func getBot(id: Int) async throws -> BotResponse { throw pachcaNotImplemented("Bots.getBot") } @@ -199,6 +207,10 @@ open class BotsService { throw pachcaNotImplemented("Bots.updateBot") } + open func deleteBot(id: Int) async throws -> Void { + throw pachcaNotImplemented("Bots.deleteBot") + } + open func deleteWebhookEvent(id: String) async throws -> Void { throw pachcaNotImplemented("Bots.deleteWebhookEvent") } @@ -216,6 +228,41 @@ public final class BotsServiceImpl: BotsService { super.init() } + public override func listBots(query: String? = nil, limit: Int? = nil, cursor: String? = nil) async throws -> ListBotsResponse { + var components = URLComponents(string: "\(baseURL)/bots")! + var queryItems: [URLQueryItem] = [] + if let query { queryItems.append(URLQueryItem(name: "query", value: String(query))) } + if let limit { queryItems.append(URLQueryItem(name: "limit", value: String(limit))) } + if let cursor { queryItems.append(URLQueryItem(name: "cursor", value: String(cursor))) } + if !queryItems.isEmpty { components.queryItems = queryItems } + var request = URLRequest(url: components.url!) + headers.forEach { request.setValue($1, forHTTPHeaderField: $0) } + let (data, urlResponse) = try await dataWithRetry(session: session, for: request) + let statusCode = (urlResponse as! HTTPURLResponse).statusCode + switch statusCode { + case 200: + return try deserialize(ListBotsResponse.self, from: data) + case 401: + throw try deserialize(OAuthError.self, from: data) + default: + throw try deserialize(ApiError.self, from: data) + } + } + + public override func listBotsAll(query: String? = nil, limit: Int? = nil) async throws -> [BotResponse] { + var items: [BotResponse] = [] + var cursor: String? = nil + var hasNext = true + while hasNext { + let response = try await listBots(query: query, limit: limit, cursor: cursor) + items.append(contentsOf: response.data) + if response.data.isEmpty { break } + cursor = response.meta.paginate.nextPage + hasNext = response.meta.paginate.hasNext ?? true + } + return items + } + public override func getBot(id: Int) async throws -> BotResponse { var request = URLRequest(url: URL(string: "\(baseURL)/bots/\(id)")!) headers.forEach { request.setValue($1, forHTTPHeaderField: $0) } @@ -351,6 +398,22 @@ public final class BotsServiceImpl: BotsService { } } + public override func deleteBot(id: Int) async throws -> Void { + var request = URLRequest(url: URL(string: "\(baseURL)/bots/\(id)")!) + request.httpMethod = "DELETE" + headers.forEach { request.setValue($1, forHTTPHeaderField: $0) } + let (data, urlResponse) = try await dataWithRetry(session: session, for: request) + let statusCode = (urlResponse as! HTTPURLResponse).statusCode + switch statusCode { + case 204: + return + case 401: + throw try deserialize(OAuthError.self, from: data) + default: + throw try deserialize(ApiError.self, from: data) + } + } + public override func deleteWebhookEvent(id: String) async throws -> Void { var request = URLRequest(url: URL(string: "\(baseURL)/webhooks/events/\(id)")!) request.httpMethod = "DELETE" diff --git a/sdk/swift/generated/Sources/Pachca/GeneratedSources/Models.swift b/sdk/swift/generated/Sources/Pachca/GeneratedSources/Models.swift index f55ff606..7cddf801 100644 --- a/sdk/swift/generated/Sources/Pachca/GeneratedSources/Models.swift +++ b/sdk/swift/generated/Sources/Pachca/GeneratedSources/Models.swift @@ -80,6 +80,15 @@ public enum AuditEventKey: String, Codable, CaseIterable { case botWebhookSettingsUpdated = "bot_webhook_settings_updated" /// Токен бота перевыпущен (ротация) case botTokenRecreated = "bot_token_recreated" + /// Бот удалён + case botDeleted = "bot_deleted" +} + +public enum BotCanEdit: String, Codable, CaseIterable { + /// Администраторы компании + case admin + /// Владельцы чатов, в которые добавлен бот + case chatOwners = "chat_owners" } public enum BotEventName: String, Codable, CaseIterable { @@ -115,6 +124,9 @@ public enum BotEventName: String, Codable, CaseIterable { case companyMemberUpdate = "company_member_update" /// Создан счёт case billCreated = "bill_created" + case videoCallStarted = "video_call_started" + case videoCallFinished = "video_call_finished" + case videoCallRecordingReady = "video_call_recording_ready" } public enum BotTemplateEngine: String, Codable, CaseIterable { @@ -133,6 +145,17 @@ public enum BotTriggerOn: String, Codable, CaseIterable { case unfurl } +public enum BotWhoCanAdd: String, Codable, CaseIterable { + /// Только создатель бота + case creator + /// Создатель и администраторы компании + case creatorAdmin = "creator_admin" + /// Создатель, администраторы и участники компании + case creatorAdminUser = "creator_admin_user" + /// Любой пользователь, в том числе гости + case anyone +} + public enum ChatAvailability: String, Codable, CaseIterable { /// Чаты, где пользователь является участником case isMember = "is_member" @@ -361,6 +384,8 @@ public enum SearchSortOrder: String, Codable, CaseIterable { case byScore = "by_score" /// По алфавиту case alphabetical + /// По дате создания + case creation } public enum SortOrder: String, Codable, CaseIterable { @@ -521,6 +546,15 @@ public enum ValidationErrorCode: String, Codable, CaseIterable { case threadMessage = "thread_message" } +public enum VideoCallEventType: String, Codable, CaseIterable { + /// Видеозвонок начался + case started + /// Видеозвонок завершился + case finished + /// Запись видеозвонка готова + case recordingReady = "recording_ready" +} + public enum WebhookEventType: String, Codable, CaseIterable { /// Создание case new @@ -910,8 +944,11 @@ public struct BotCreateRequestWebhook: Codable { public let linkPreviewEnabled: Bool? public let ignoreSelfMessages: Bool? public let eventsHistoryEnabled: Bool? + public let whoCanAdd: BotWhoCanAdd? + public let canEdit: [BotCanEdit]? + public let singleChat: Bool? - public init(name: String, nickname: String? = nil, outgoingUrl: String? = nil, events: [BotEventName]? = nil, triggerOn: BotTriggerOn? = nil, commands: [String]? = nil, scopes: [String]? = nil, template: String? = nil, templateEngine: BotTemplateEngine? = nil, challengeKey: String? = nil, linkPreviewEnabled: Bool? = nil, ignoreSelfMessages: Bool? = nil, eventsHistoryEnabled: Bool? = nil) { + public init(name: String, nickname: String? = nil, outgoingUrl: String? = nil, events: [BotEventName]? = nil, triggerOn: BotTriggerOn? = nil, commands: [String]? = nil, scopes: [String]? = nil, template: String? = nil, templateEngine: BotTemplateEngine? = nil, challengeKey: String? = nil, linkPreviewEnabled: Bool? = nil, ignoreSelfMessages: Bool? = nil, eventsHistoryEnabled: Bool? = nil, whoCanAdd: BotWhoCanAdd? = nil, canEdit: [BotCanEdit]? = nil, singleChat: Bool? = nil) { self.name = name self.nickname = nickname self.outgoingUrl = outgoingUrl @@ -925,6 +962,9 @@ public struct BotCreateRequestWebhook: Codable { self.linkPreviewEnabled = linkPreviewEnabled self.ignoreSelfMessages = ignoreSelfMessages self.eventsHistoryEnabled = eventsHistoryEnabled + self.whoCanAdd = whoCanAdd + self.canEdit = canEdit + self.singleChat = singleChat } enum CodingKeys: String, CodingKey { @@ -941,6 +981,9 @@ public struct BotCreateRequestWebhook: Codable { case linkPreviewEnabled = "link_preview_enabled" case ignoreSelfMessages = "ignore_self_messages" case eventsHistoryEnabled = "events_history_enabled" + case whoCanAdd = "who_can_add" + case canEdit = "can_edit" + case singleChat = "single_chat" } } @@ -994,8 +1037,10 @@ public struct BotUpdateRequestWebhook: Codable { public let linkPreviewEnabled: Bool? public let ignoreSelfMessages: Bool? public let eventsHistoryEnabled: Bool? + public let whoCanAdd: BotWhoCanAdd? + public let canEdit: [BotCanEdit]? - public init(name: String? = nil, nickname: String? = nil, outgoingUrl: String? = nil, events: [BotEventName]? = nil, triggerOn: BotTriggerOn? = nil, commands: [String]? = nil, scopes: [String]? = nil, template: String? = nil, templateEngine: BotTemplateEngine? = nil, challengeKey: String? = nil, linkPreviewEnabled: Bool? = nil, ignoreSelfMessages: Bool? = nil, eventsHistoryEnabled: Bool? = nil) { + public init(name: String? = nil, nickname: String? = nil, outgoingUrl: String? = nil, events: [BotEventName]? = nil, triggerOn: BotTriggerOn? = nil, commands: [String]? = nil, scopes: [String]? = nil, template: String? = nil, templateEngine: BotTemplateEngine? = nil, challengeKey: String? = nil, linkPreviewEnabled: Bool? = nil, ignoreSelfMessages: Bool? = nil, eventsHistoryEnabled: Bool? = nil, whoCanAdd: BotWhoCanAdd? = nil, canEdit: [BotCanEdit]? = nil) { self.name = name self.nickname = nickname self.outgoingUrl = outgoingUrl @@ -1009,6 +1054,8 @@ public struct BotUpdateRequestWebhook: Codable { self.linkPreviewEnabled = linkPreviewEnabled self.ignoreSelfMessages = ignoreSelfMessages self.eventsHistoryEnabled = eventsHistoryEnabled + self.whoCanAdd = whoCanAdd + self.canEdit = canEdit } enum CodingKeys: String, CodingKey { @@ -1025,6 +1072,8 @@ public struct BotUpdateRequestWebhook: Codable { case linkPreviewEnabled = "link_preview_enabled" case ignoreSelfMessages = "ignore_self_messages" case eventsHistoryEnabled = "events_history_enabled" + case whoCanAdd = "who_can_add" + case canEdit = "can_edit" } } @@ -1050,8 +1099,11 @@ public struct BotWebhook: Codable { public let linkPreviewEnabled: Bool public let ignoreSelfMessages: Bool public let eventsHistoryEnabled: Bool + public let singleChat: Bool + public let canEdit: [BotCanEdit] + public let whoCanAdd: BotWhoCanAdd - public init(name: String, nickname: String, outgoingUrl: String? = nil, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String? = nil, templateEngine: BotTemplateEngine, challengeKey: String? = nil, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool) { + public init(name: String, nickname: String, outgoingUrl: String? = nil, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String? = nil, templateEngine: BotTemplateEngine, challengeKey: String? = nil, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool, singleChat: Bool, canEdit: [BotCanEdit], whoCanAdd: BotWhoCanAdd) { self.name = name self.nickname = nickname self.outgoingUrl = outgoingUrl @@ -1065,6 +1117,9 @@ public struct BotWebhook: Codable { self.linkPreviewEnabled = linkPreviewEnabled self.ignoreSelfMessages = ignoreSelfMessages self.eventsHistoryEnabled = eventsHistoryEnabled + self.singleChat = singleChat + self.canEdit = canEdit + self.whoCanAdd = whoCanAdd } enum CodingKeys: String, CodingKey { @@ -1081,6 +1136,9 @@ public struct BotWebhook: Codable { case linkPreviewEnabled = "link_preview_enabled" case ignoreSelfMessages = "ignore_self_messages" case eventsHistoryEnabled = "events_history_enabled" + case singleChat = "single_chat" + case canEdit = "can_edit" + case whoCanAdd = "who_can_add" } } @@ -2517,6 +2575,60 @@ public struct UserUpdateRequest: Codable { } } +public struct VideoCallWebhookPayload: Codable { + public let type: String + public let event: VideoCallEventType + public let videoRoomId: Int + public let chatId: Int + public let ownerId: Int + public let thread: WebhookVideoCallThread? + public let startedAt: String? + public let finishedAt: String? + public let duration: Int? + public let members: [WebhookVideoCallMember]? + public let recordingId: Int? + public let fileId: Int? + public let url: String? + public let size: Int? + public let webhookTimestamp: Int + + public init(type: String, event: VideoCallEventType, videoRoomId: Int, chatId: Int, ownerId: Int, thread: WebhookVideoCallThread? = nil, startedAt: String? = nil, finishedAt: String? = nil, duration: Int? = nil, members: [WebhookVideoCallMember]? = nil, recordingId: Int? = nil, fileId: Int? = nil, url: String? = nil, size: Int? = nil, webhookTimestamp: Int) { + self.type = type + self.event = event + self.videoRoomId = videoRoomId + self.chatId = chatId + self.ownerId = ownerId + self.thread = thread + self.startedAt = startedAt + self.finishedAt = finishedAt + self.duration = duration + self.members = members + self.recordingId = recordingId + self.fileId = fileId + self.url = url + self.size = size + self.webhookTimestamp = webhookTimestamp + } + + enum CodingKeys: String, CodingKey { + case type + case event + case videoRoomId = "video_room_id" + case chatId = "chat_id" + case ownerId = "owner_id" + case thread + case startedAt = "started_at" + case finishedAt = "finished_at" + case duration + case members + case recordingId = "recording_id" + case fileId = "file_id" + case url + case size + case webhookTimestamp = "webhook_timestamp" + } +} + public struct ViewBlock: Codable { public let type: String public let text: String? @@ -2895,6 +3007,45 @@ public struct WebhookMessageThread: Codable { } } +public struct WebhookVideoCallMember: Codable { + public let userId: Int + public let joinedAt: String + public let leftAt: String + + public init(userId: Int, joinedAt: String, leftAt: String) { + self.userId = userId + self.joinedAt = joinedAt + self.leftAt = leftAt + } + + enum CodingKeys: String, CodingKey { + case userId = "user_id" + case joinedAt = "joined_at" + case leftAt = "left_at" + } +} + +public struct WebhookVideoCallThread: Codable { + public let id: Int + public let chatId: Int + public let messageId: Int + public let messageChatId: Int + + public init(id: Int, chatId: Int, messageId: Int, messageChatId: Int) { + self.id = id + self.chatId = chatId + self.messageId = messageId + self.messageChatId = messageChatId + } + + enum CodingKeys: String, CodingKey { + case id + case chatId = "chat_id" + case messageId = "message_id" + case messageChatId = "message_chat_id" + } +} + public struct UpdateProfileAvatarRequest: Codable { public var image: Data @@ -3100,6 +3251,7 @@ public enum WebhookPayloadUnion: Codable { case chatMemberWebhookPayload(ChatMemberWebhookPayload) case companyMemberWebhookPayload(CompanyMemberWebhookPayload) case linkSharedWebhookPayload(LinkSharedWebhookPayload) + case videoCallWebhookPayload(VideoCallWebhookPayload) private enum CodingKeys: String, CodingKey { case type @@ -3125,6 +3277,8 @@ public enum WebhookPayloadUnion: Codable { self = .chatMemberWebhookPayload(try ChatMemberWebhookPayload(from: decoder)) case ("company_member", _): self = .companyMemberWebhookPayload(try CompanyMemberWebhookPayload(from: decoder)) + case ("video_call", _): + self = .videoCallWebhookPayload(try VideoCallWebhookPayload(from: decoder)) default: throw DecodingError.dataCorrupted( DecodingError.Context(codingPath: decoder.codingPath, debugDescription: "Unknown type: \(type)") @@ -3148,6 +3302,8 @@ public enum WebhookPayloadUnion: Codable { try value.encode(to: encoder) case .linkSharedWebhookPayload(let value): try value.encode(to: encoder) + case .videoCallWebhookPayload(let value): + try value.encode(to: encoder) } } } @@ -3157,6 +3313,11 @@ public struct GetAuditEventsResponse: Codable { public let meta: PaginationMeta } +public struct ListBotsResponse: Codable { + public let data: [BotResponse] + public let meta: PaginationMeta +} + public struct ListChatsResponse: Codable { public let data: [Chat] public let meta: PaginationMeta diff --git a/sdk/swift/generated/examples.json b/sdk/swift/generated/examples.json index 88a46fbc..123dc90e 100644 --- a/sdk/swift/generated/examples.json +++ b/sdk/swift/generated/examples.json @@ -12,9 +12,13 @@ "AuditEventKey" ] }, + "BotOperations_listBots": { + "usage": "let response = try await client.bots.listBots(query: \"задач\", limit: 1, cursor: \"eyJpZCI6MTczODgxNn0\")", + "output": "ListBotsResponse(data: [BotResponse], meta: PaginationMeta)" + }, "BotOperations_getBot": { "usage": "let response = try await client.bots.getBot(id: 1738816)", - "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool))" + "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool, singleChat: Bool, canEdit: [BotCanEdit], whoCanAdd: BotWhoCanAdd))" }, "BotOperations_getWebhookEvents": { "usage": "let response = try await client.bots.getWebhookEvents(limit: 1, cursor: \"eyJpZCI6MTAsImRpciI6ImFzYyJ9\")", @@ -28,42 +32,49 @@ }, "BotOperations_selfRecreateBotToken": { "usage": "let response = try await client.bots.selfRecreateBotToken()", - "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool), accessToken: String)" + "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool, singleChat: Bool, canEdit: [BotCanEdit], whoCanAdd: BotWhoCanAdd), accessToken: String)" }, "BotOperations_createBot": { - "usage": "let body = BotCreateRequest(\n webhook: BotCreateRequestWebhook(\n name: \"Бот задач\",\n nickname: \"tasks_bot\",\n outgoingUrl: \"https://www.website.com/tasks/new\",\n events: [.messageNew],\n triggerOn: .commands,\n commands: [\"example\"],\n scopes: [\"example\"],\n template: \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine: .liquid,\n challengeKey: \"challenge\",\n linkPreviewEnabled: true,\n ignoreSelfMessages: false,\n eventsHistoryEnabled: false\n )\n)\nlet response = try await client.bots.createBot(body: body)", - "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool), accessToken: String)", + "usage": "let body = BotCreateRequest(\n webhook: BotCreateRequestWebhook(\n name: \"Бот задач\",\n nickname: \"tasks_bot\",\n outgoingUrl: \"https://www.website.com/tasks/new\",\n events: [.messageNew],\n triggerOn: .commands,\n commands: [\"example\"],\n scopes: [\"example\"],\n template: \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine: .liquid,\n challengeKey: \"challenge\",\n linkPreviewEnabled: true,\n ignoreSelfMessages: false,\n eventsHistoryEnabled: false,\n whoCanAdd: .creator,\n canEdit: [.admin],\n singleChat: false\n )\n)\nlet response = try await client.bots.createBot(body: body)", + "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool, singleChat: Bool, canEdit: [BotCanEdit], whoCanAdd: BotWhoCanAdd), accessToken: String)", "imports": [ + "BotCanEdit", "BotCreateRequest", "BotCreateRequestWebhook", "BotEventName", "BotTemplateEngine", - "BotTriggerOn" + "BotTriggerOn", + "BotWhoCanAdd" ] }, "BotOperations_recreateBotToken": { "usage": "let response = try await client.bots.recreateBotToken(id: 1738816)", - "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool), accessToken: String)" + "output": "BotCreateResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool, singleChat: Bool, canEdit: [BotCanEdit], whoCanAdd: BotWhoCanAdd), accessToken: String)" }, "BotOperations_selfUpdateBotWebhook": { "usage": "let body = BotWebhookSelfUpdateRequest(webhook: BotWebhookSelfUpdateRequestWebhook(outgoingUrl: \"https://www.website.com/tasks/new\"))\nlet response = try await client.bots.selfUpdateBotWebhook(body: body)", - "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool))", + "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool, singleChat: Bool, canEdit: [BotCanEdit], whoCanAdd: BotWhoCanAdd))", "imports": [ "BotWebhookSelfUpdateRequest", "BotWebhookSelfUpdateRequestWebhook" ] }, "BotOperations_updateBot": { - "usage": "let body = BotUpdateRequest(\n webhook: BotUpdateRequestWebhook(\n name: \"Бот задач\",\n nickname: \"tasks_bot\",\n outgoingUrl: \"https://www.website.com/tasks/new\",\n events: [.messageNew],\n triggerOn: .commands,\n commands: [\"example\"],\n scopes: [\"example\"],\n template: \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine: .liquid,\n challengeKey: \"challenge\",\n linkPreviewEnabled: true,\n ignoreSelfMessages: false,\n eventsHistoryEnabled: false\n )\n)\nlet response = try await client.bots.updateBot(id: 1738816, body: body)", - "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool))", + "usage": "let body = BotUpdateRequest(\n webhook: BotUpdateRequestWebhook(\n name: \"Бот задач\",\n nickname: \"tasks_bot\",\n outgoingUrl: \"https://www.website.com/tasks/new\",\n events: [.messageNew],\n triggerOn: .commands,\n commands: [\"example\"],\n scopes: [\"example\"],\n template: \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine: .liquid,\n challengeKey: \"challenge\",\n linkPreviewEnabled: true,\n ignoreSelfMessages: false,\n eventsHistoryEnabled: false,\n whoCanAdd: .creator,\n canEdit: [.admin]\n )\n)\nlet response = try await client.bots.updateBot(id: 1738816, body: body)", + "output": "BotResponse(id: Int, webhook: BotWebhook(name: String, nickname: String, outgoingUrl: String?, events: [BotEventName], triggerOn: BotTriggerOn, commands: [String], scopes: [String], template: String?, templateEngine: BotTemplateEngine, challengeKey: String?, linkPreviewEnabled: Bool, ignoreSelfMessages: Bool, eventsHistoryEnabled: Bool, singleChat: Bool, canEdit: [BotCanEdit], whoCanAdd: BotWhoCanAdd))", "imports": [ + "BotCanEdit", "BotEventName", "BotTemplateEngine", "BotTriggerOn", "BotUpdateRequest", - "BotUpdateRequestWebhook" + "BotUpdateRequestWebhook", + "BotWhoCanAdd" ] }, + "BotOperations_deleteBot": { + "usage": "try await client.bots.deleteBot(id: 1738816)" + }, "BotOperations_deleteWebhookEvent": { "usage": "try await client.bots.deleteWebhookEvent(id: \"01KAJZ2XDSS2S3DSW9EXJZ0TBV\")" }, diff --git a/sdk/typescript/src/generated/client.ts b/sdk/typescript/src/generated/client.ts index 28c0084e..9764b6f6 100644 --- a/sdk/typescript/src/generated/client.ts +++ b/sdk/typescript/src/generated/client.ts @@ -4,6 +4,8 @@ import { AuditEvent, OAuthError, ApiError, + ListBotsParams, + ListBotsResponse, BotResponse, GetWebhookEventsParams, GetWebhookEventsResponse, @@ -150,6 +152,14 @@ export class SecurityServiceImpl extends SecurityService { } export class BotsService { + async listBots(params?: ListBotsParams): Promise { + throw new Error("Bots.listBots is not implemented"); + } + + async listBotsAll(params?: Omit): Promise { + throw new Error("Bots.listBotsAll is not implemented"); + } + async getBot(id: number): Promise { throw new Error("Bots.getBot is not implemented"); } @@ -229,6 +239,10 @@ export class BotsService { throw new Error("Bots.updateBot is not implemented"); } + async deleteBot(id: number): Promise { + throw new Error("Bots.deleteBot is not implemented"); + } + async deleteWebhookEvent(id: string): Promise { throw new Error("Bots.deleteWebhookEvent is not implemented"); } @@ -242,6 +256,40 @@ export class BotsServiceImpl extends BotsService { super(); } + async listBots(params?: ListBotsParams): Promise { + const query = new URLSearchParams(); + if (params?.query !== undefined) query.set("query", params.query); + if (params?.limit !== undefined) query.set("limit", String(params.limit)); + if (params?.cursor !== undefined) query.set("cursor", params.cursor); + const url = `${this.baseUrl}/bots${query.toString() ? `?${query}` : ""}`; + const response = await fetchWithRetry(url, { + headers: this.headers, + }); + const body = await response.json(); + switch (response.status) { + case 200: + return deserialize(body) as ListBotsResponse; + case 401: + throw new OAuthError(body.error); + default: + throw new ApiError(body.errors); + } + } + + async listBotsAll(params?: Omit): Promise { + const items: BotResponse[] = []; + let cursor: string | undefined; + let hasNext = true; + while (hasNext) { + const response = await this.listBots({ ...params, cursor } as ListBotsParams); + items.push(...response.data); + if (response.data.length === 0) break; + cursor = response.meta.paginate.nextPage; + hasNext = response.meta.paginate.hasNext ?? true; + } + return items; + } + async getBot(id: number): Promise { const response = await fetchWithRetry(`${this.baseUrl}/bots/${id}`, { headers: this.headers, @@ -373,6 +421,21 @@ export class BotsServiceImpl extends BotsService { } } + async deleteBot(id: number): Promise { + const response = await fetchWithRetry(`${this.baseUrl}/bots/${id}`, { + method: "DELETE", + headers: this.headers, + }); + switch (response.status) { + case 204: + return; + case 401: + throw new OAuthError(((await response.json()) as any).error); + default: + throw new ApiError(((await response.json()) as any).errors); + } + } + async deleteWebhookEvent(id: string): Promise { const response = await fetchWithRetry(`${this.baseUrl}/webhooks/events/${id}`, { method: "DELETE", diff --git a/sdk/typescript/src/generated/examples.json b/sdk/typescript/src/generated/examples.json index 6336e0dc..93e2355d 100644 --- a/sdk/typescript/src/generated/examples.json +++ b/sdk/typescript/src/generated/examples.json @@ -12,9 +12,13 @@ "AuditEventKey" ] }, + "BotOperations_listBots": { + "usage": "const response = client.bots.listBots({\n query: \"задач\",\n limit: 1,\n cursor: \"eyJpZCI6MTczODgxNn0\"\n})", + "output": "ListBotsResponse({ data: BotResponse[], meta: PaginationMeta })" + }, "BotOperations_getBot": { "usage": "const response = client.bots.getBot(1738816)", - "output": "BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }) })" + "output": "BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }) })" }, "BotOperations_getWebhookEvents": { "usage": "const response = client.bots.getWebhookEvents({ limit: 1, cursor: \"eyJpZCI6MTAsImRpciI6ImFzYyJ9\" })", @@ -28,42 +32,49 @@ }, "BotOperations_selfRecreateBotToken": { "usage": "const response = client.bots.selfRecreateBotToken()", - "output": "BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }), accessToken: string })" + "output": "BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }), accessToken: string })" }, "BotOperations_createBot": { - "usage": "const request: BotCreateRequest = {\n webhook: {\n name: \"Бот задач\",\n nickname: \"tasks_bot\",\n outgoingUrl: \"https://www.website.com/tasks/new\",\n events: [BotEventName.MessageNew],\n triggerOn: BotTriggerOn.Commands,\n commands: [\"example\"],\n scopes: [\"example\"],\n template: \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine: BotTemplateEngine.Liquid,\n challengeKey: \"challenge\",\n linkPreviewEnabled: true,\n ignoreSelfMessages: false,\n eventsHistoryEnabled: false\n }\n}\nconst response = client.bots.createBot(request)", - "output": "BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }), accessToken: string })", + "usage": "const request: BotCreateRequest = {\n webhook: {\n name: \"Бот задач\",\n nickname: \"tasks_bot\",\n outgoingUrl: \"https://www.website.com/tasks/new\",\n events: [BotEventName.MessageNew],\n triggerOn: BotTriggerOn.Commands,\n commands: [\"example\"],\n scopes: [\"example\"],\n template: \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine: BotTemplateEngine.Liquid,\n challengeKey: \"challenge\",\n linkPreviewEnabled: true,\n ignoreSelfMessages: false,\n eventsHistoryEnabled: false,\n whoCanAdd: BotWhoCanAdd.Creator,\n canEdit: [BotCanEdit.Admin],\n singleChat: false\n }\n}\nconst response = client.bots.createBot(request)", + "output": "BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }), accessToken: string })", "imports": [ + "BotCanEdit", "BotCreateRequest", "BotCreateRequestWebhook", "BotEventName", "BotTemplateEngine", - "BotTriggerOn" + "BotTriggerOn", + "BotWhoCanAdd" ] }, "BotOperations_recreateBotToken": { "usage": "const response = client.bots.recreateBotToken(1738816)", - "output": "BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }), accessToken: string })" + "output": "BotCreateResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }), accessToken: string })" }, "BotOperations_selfUpdateBotWebhook": { "usage": "const request: BotWebhookSelfUpdateRequest = { webhook: { outgoingUrl: \"https://www.website.com/tasks/new\" } }\nconst response = client.bots.selfUpdateBotWebhook(request)", - "output": "BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }) })", + "output": "BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }) })", "imports": [ "BotWebhookSelfUpdateRequest", "BotWebhookSelfUpdateRequestWebhook" ] }, "BotOperations_updateBot": { - "usage": "const request: BotUpdateRequest = {\n webhook: {\n name: \"Бот задач\",\n nickname: \"tasks_bot\",\n outgoingUrl: \"https://www.website.com/tasks/new\",\n events: [BotEventName.MessageNew],\n triggerOn: BotTriggerOn.Commands,\n commands: [\"example\"],\n scopes: [\"example\"],\n template: \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine: BotTemplateEngine.Liquid,\n challengeKey: \"challenge\",\n linkPreviewEnabled: true,\n ignoreSelfMessages: false,\n eventsHistoryEnabled: false\n }\n}\nconst response = client.bots.updateBot(1738816, request)", - "output": "BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean }) })", + "usage": "const request: BotUpdateRequest = {\n webhook: {\n name: \"Бот задач\",\n nickname: \"tasks_bot\",\n outgoingUrl: \"https://www.website.com/tasks/new\",\n events: [BotEventName.MessageNew],\n triggerOn: BotTriggerOn.Commands,\n commands: [\"example\"],\n scopes: [\"example\"],\n template: \"Заказ от {{ client }} на сумму {{ amount }} ₽\",\n templateEngine: BotTemplateEngine.Liquid,\n challengeKey: \"challenge\",\n linkPreviewEnabled: true,\n ignoreSelfMessages: false,\n eventsHistoryEnabled: false,\n whoCanAdd: BotWhoCanAdd.Creator,\n canEdit: [BotCanEdit.Admin]\n }\n}\nconst response = client.bots.updateBot(1738816, request)", + "output": "BotResponse({ id: number, webhook: BotWebhook({ name: string, nickname: string, outgoingUrl: string | null, events: BotEventName[], triggerOn: BotTriggerOn, commands: string[], scopes: string[], template: string | null, templateEngine: BotTemplateEngine, challengeKey: string | null, linkPreviewEnabled: boolean, ignoreSelfMessages: boolean, eventsHistoryEnabled: boolean, singleChat: boolean, canEdit: BotCanEdit[], whoCanAdd: BotWhoCanAdd }) })", "imports": [ + "BotCanEdit", "BotEventName", "BotTemplateEngine", "BotTriggerOn", "BotUpdateRequest", - "BotUpdateRequestWebhook" + "BotUpdateRequestWebhook", + "BotWhoCanAdd" ] }, + "BotOperations_deleteBot": { + "usage": "client.bots.deleteBot(1738816)" + }, "BotOperations_deleteWebhookEvent": { "usage": "client.bots.deleteWebhookEvent(\"01KAJZ2XDSS2S3DSW9EXJZ0TBV\")" }, diff --git a/sdk/typescript/src/generated/types.ts b/sdk/typescript/src/generated/types.ts index 3c1c68c6..0d67b917 100644 --- a/sdk/typescript/src/generated/types.ts +++ b/sdk/typescript/src/generated/types.ts @@ -76,6 +76,16 @@ export enum AuditEventKey { BotWebhookSettingsUpdated = "bot_webhook_settings_updated", /** Токен бота перевыпущен (ротация) */ BotTokenRecreated = "bot_token_recreated", + /** Бот удалён */ + BotDeleted = "bot_deleted", +} + +/** Роль, которой разрешено редактировать настройки бота */ +export enum BotCanEdit { + /** Администраторы компании */ + Admin = "admin", + /** Владельцы чатов, в которые добавлен бот */ + ChatOwners = "chat_owners", } /** Событие исходящего вебхука бота */ @@ -112,6 +122,9 @@ export enum BotEventName { CompanyMemberUpdate = "company_member_update", /** Создан счёт */ BillCreated = "bill_created", + VideoCallStarted = "video_call_started", + VideoCallFinished = "video_call_finished", + VideoCallRecordingReady = "video_call_recording_ready", } /** Шаблонизатор для форматирования входящих вебхуков */ @@ -132,6 +145,18 @@ export enum BotTriggerOn { Unfurl = "unfurl", } +/** Кто может добавлять бота в чаты */ +export enum BotWhoCanAdd { + /** Только создатель бота */ + Creator = "creator", + /** Создатель и администраторы компании */ + CreatorAdmin = "creator_admin", + /** Создатель, администраторы и участники компании */ + CreatorAdminUser = "creator_admin_user", + /** Любой пользователь, в том числе гости */ + Anyone = "anyone", +} + /** Доступность чатов для пользователя */ export enum ChatAvailability { /** Чаты, где пользователь является участником */ @@ -375,6 +400,8 @@ export enum SearchSortOrder { ByScore = "by_score", /** По алфавиту */ Alphabetical = "alphabetical", + /** По дате создания */ + Creation = "creation", } /** Порядок сортировки */ @@ -543,6 +570,16 @@ export enum ValidationErrorCode { ThreadMessage = "thread_message", } +/** Тип события видеозвонка */ +export enum VideoCallEventType { + /** Видеозвонок начался */ + Started = "started", + /** Видеозвонок завершился */ + Finished = "finished", + /** Запись видеозвонка готова */ + RecordingReady = "recording_ready", +} + /** Тип события webhook */ export enum WebhookEventType { /** Создание */ @@ -707,6 +744,11 @@ export interface BotCreateRequest { ignoreSelfMessages?: boolean; /** @default false */ eventsHistoryEnabled?: boolean; + /** @default creator */ + whoCanAdd?: BotWhoCanAdd; + canEdit?: BotCanEdit[]; + /** @default false */ + singleChat?: boolean; }; } @@ -741,6 +783,9 @@ export interface BotUpdateRequest { ignoreSelfMessages?: boolean; /** @default false */ eventsHistoryEnabled?: boolean; + /** @default creator */ + whoCanAdd?: BotWhoCanAdd; + canEdit?: BotCanEdit[]; }; } @@ -758,6 +803,9 @@ export interface BotWebhook { linkPreviewEnabled: boolean; ignoreSelfMessages: boolean; eventsHistoryEnabled: boolean; + singleChat: boolean; + canEdit: BotCanEdit[]; + whoCanAdd: BotWhoCanAdd; } export interface BotWebhookSelfUpdateRequest { @@ -1250,6 +1298,24 @@ export interface UserUpdateRequest { }; } +export interface VideoCallWebhookPayload { + type: "video_call"; + event: VideoCallEventType; + videoRoomId: number; + chatId: number; + ownerId: number; + thread?: WebhookVideoCallThread | null; + startedAt?: string; + finishedAt?: string; + duration?: number; + members?: WebhookVideoCallMember[]; + recordingId?: number; + fileId?: number | null; + url?: string; + size?: number; + webhookTimestamp: number; +} + export interface ViewBlock { type: string; text?: string; @@ -1409,6 +1475,19 @@ export interface WebhookMessageThread { messageChatId: number; } +export interface WebhookVideoCallMember { + userId: number; + joinedAt: string; + leftAt: string; +} + +export interface WebhookVideoCallThread { + id: number; + chatId: number; + messageId: number; + messageChatId: number; +} + export interface UpdateProfileAvatarRequest { image: Blob; } @@ -1421,7 +1500,7 @@ export type AuditEventDetailsUnion = AuditDetailsEmpty | AuditDetailsUserUpdated export type ViewBlockUnion = ViewBlockHeader | ViewBlockPlainText | ViewBlockMarkdown | ViewBlockDivider | ViewBlockInput | ViewBlockSelect | ViewBlockRadio | ViewBlockCheckbox | ViewBlockDate | ViewBlockTime | ViewBlockFileInput; -export type WebhookPayloadUnion = MessageWebhookPayload | ReactionWebhookPayload | ButtonWebhookPayload | ViewSubmitWebhookPayload | ChatMemberWebhookPayload | CompanyMemberWebhookPayload | LinkSharedWebhookPayload; +export type WebhookPayloadUnion = MessageWebhookPayload | ReactionWebhookPayload | ButtonWebhookPayload | ViewSubmitWebhookPayload | ChatMemberWebhookPayload | CompanyMemberWebhookPayload | LinkSharedWebhookPayload | VideoCallWebhookPayload; export interface GetAuditEventsParams { startTime?: string; @@ -1435,6 +1514,12 @@ export interface GetAuditEventsParams { cursor?: string; } +export interface ListBotsParams { + query?: string; + limit?: number; + cursor?: string; +} + export interface ListChatsParams { sort?: ChatSortField; order?: SortOrder; @@ -1554,6 +1639,11 @@ export interface GetAuditEventsResponse { meta: PaginationMeta; } +export interface ListBotsResponse { + data: BotResponse[]; + meta: PaginationMeta; +} + export interface ListChatsResponse { data: Chat[]; meta: PaginationMeta; diff --git a/skills/pachca-bots/SKILL.md b/skills/pachca-bots/SKILL.md index 2b26ee15..931bceb5 100644 --- a/skills/pachca-bots/SKILL.md +++ b/skills/pachca-bots/SKILL.md @@ -108,6 +108,21 @@ Help: `npx -y @pachca/cli --help` | Workflows: `npx -y @pachca/cli guide` > Новый токен возвращается один раз. Self-путь (`POST /bot/recreate_token`) инвалидирует именно тот токен, которым выполнен запрос, — захвати новый токен из ответа в той же операции. +### Найти и удалить бота + +1. Пользовательским токеном (скоуп `bots:read`) получи список ботов, доступных тебе для редактирования: созданных тобой и тех, чьи настройки открывают тебе доступ. Фильтруй по имени параметром `query`, следующую страницу бери из `meta.paginate.next_page`: + ```bash + pachca bots list --query="задач" + ``` + +2. Возьми `id` нужного бота из списка и удали его (скоуп `bots:write`). Доступно администратору, владельцу компании или создателю бота — владельцы чатов удалять бота не могут. Прежний токен инвалидируется сразу, бот исключается из всех чатов, его исходящий вебхук удаляется: + ```bash + pachca bots delete + ``` + +> Удаление необратимо: токен бота инвалидируется сразу, бот исключается из чатов. Событие фиксируется в журнале аудита как `bot_deleted`. + + ### Периодический дайджест/отчёт 1. По расписанию (cron/scheduler): собери данные из своей системы @@ -127,6 +142,7 @@ Help: `npx -y @pachca/cli --help` | Workflows: `npx -y @pachca/cli guide` - Rate limit: ~50 req/sec. On 429 — wait and retry. - `webhook.trigger_on`: allowed values — `commands` (Только на команды (триггер-слова) из commands), `all_messages` (На все сообщения в чатах, где есть бот), `unfurl` (На развёртывание ссылок (link previews)) - `webhook.template_engine`: allowed values — `liquid` (Liquid — условия, циклы и фильтры), `mustache` (Mustache — простая подстановка без логики) +- `webhook.who_can_add`: allowed values — `creator` (Только создатель бота), `creator_admin` (Создатель и администраторы компании), `creator_admin_user` (Создатель, администраторы и участники компании), `anyone` (Любой пользователь, в том числе гости) - `limit`: max 50 - Pagination: cursor-based (limit + cursor) @@ -136,9 +152,11 @@ Help: `npx -y @pachca/cli --help` | Workflows: `npx -y @pachca/cli guide` |--------|------|-------------| | POST | /bot/recreate_token | Ротация собственного токена бота | | PUT | /bot/webhook | Саморегистрация вебхука бота | +| GET | /bots | Список ботов | | POST | /bots | Новый бот | | GET | /bots/{id} | Информация о боте | | PUT | /bots/{id} | Редактирование бота | +| DELETE | /bots/{id} | Удаление бота | | POST | /bots/{id}/recreate_token | Ротация токена бота | | GET | /webhooks/events | История событий | | DELETE | /webhooks/events/{id} | Удаление события | diff --git a/skills/pachca-bots/references/webhook-events.md b/skills/pachca-bots/references/webhook-events.md index 5f0fc020..dec3462f 100644 --- a/skills/pachca-bots/references/webhook-events.md +++ b/skills/pachca-bots/references/webhook-events.md @@ -44,6 +44,12 @@ Sent when members are added/removed in chats where the bot is a member. Global event (does not require the bot to be in a chat). Events: invite, confirm, update, suspend, activate, delete. +## Video calls + +Sent for video calls in chats where the bot is a member. +Field `event` distinguishes: `started`, `finished` (includes participants and duration), `recording_ready` (includes recording file `url`, `size`, `duration`). +Field `type` is always `video_call`. Common fields: `video_room_id`, `chat_id`, `owner_id`, `thread`. + ## Security 1. Verify signature: `HMAC-SHA256(Signing secret, raw body)` === `Pachca-Signature`