openapi: 3.0.0
info:
  title: Pachca API
  version: 1.0.0
tags:
  - name: Common
  - name: Profile
  - name: Users
  - name: Group tags
  - name: Chats
  - name: Members
  - name: Thread
  - name: Messages
  - name: Read member
  - name: Reactions
  - name: Link Previews
  - name: Tasks
  - name: Views
  - name: Bots
  - name: Security
paths:
  /audit_events:
    get:
      operationId: SecurityOperations_getAuditEvents
      description: |-
        Журнал аудита событий

        #corporation_price_only

        Метод для получения логов событий на основе указанных фильтров.
      parameters:
        - name: start_time
          in: query
          required: true
          description: Начальная метка времени (включительно)
          schema:
            type: string
            format: date-time
          explode: false
        - name: end_time
          in: query
          required: true
          description: Конечная метка времени (исключительно)
          schema:
            type: string
            format: date-time
          explode: false
        - name: event_key
          in: query
          required: false
          description: Фильтр по конкретному типу события
          schema:
            $ref: '#/components/schemas/AuditEventKey'
          explode: false
        - name: actor_id
          in: query
          required: false
          description: Идентификатор пользователя, выполнившего действие
          schema:
            type: integer
            format: int32
          explode: false
        - name: actor_type
          in: query
          required: false
          description: Тип актора
          schema:
            type: string
          explode: false
        - name: entity_id
          in: query
          required: false
          description: Идентификатор затронутой сущности
          schema:
            type: integer
            format: int32
          explode: false
        - name: entity_type
          in: query
          required: false
          description: Тип сущности
          schema:
            type: string
          explode: false
        - name: limit
          in: query
          required: false
          description: Количество записей для возврата
          schema:
            type: integer
            format: int32
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации из meta.paginate.next_page
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AuditEvent'
                description: Обертка ответа с данными и пагинацией
              example:
                meta:
                  paginate:
                    next_page: eyJfa2QiOiJuIiwiY3JlYXRlZF9hdCI6IjIwMjUtMDUtMTUgMTQ6MzA6MDAuMDAwWiJ9
                data:
                  - id: a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14
                    created_at: '2025-05-15T14:30:00.000Z'
                    event_key: user_chat_join
                    entity_id: '12345678'
                    entity_type: Chat
                    actor_id: '98765'
                    actor_type: User
                    details:
                      inviter_id: '45678'
                    ip_address: 192.168.1.100
                    user_agent: Pachca/3.60.0 (co.staply.pachca; build:15; iOS 18.5.0) Alamofire/5.0.0
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Security
  /bots/{id}:
    put:
      operationId: BotOperations_updateBot
      description: |-
        Редактирование бота

        Метод для редактирования бота.

        Для редактирования бота вам необходимо знать его `user_id` и указать его в `URL` запроса. Все редактируемые параметры бота указываются в теле запроса. Узнать `user_id` бота можно в настройках бота во вкладке «API».

        Вы не можете редактировать бота, настройки которого вам недоступны (поле «Кто может редактировать настройки бота» находится во вкладке «Основное» в настройках бота).
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор бота
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/BotResponse'
                description: Обертка ответа с данными
              example:
                data:
                  id: 1738816
                  webhook:
                    outgoing_url: https://www.website.com/tasks/new
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Bots
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BotUpdateRequest'
            example:
              bot:
                webhook:
                  outgoing_url: https://www.website.com/tasks/new
  /chats:
    post:
      operationId: ChatOperations_createChat
      description: |-
        Новый чат

        Метод для создания нового чата.

        Для создания личной переписки 1 на 1 с пользователем пользуйтесь методом [Новое сообщение](POST /messages).

        При создании чата вы автоматически становитесь участником.
      parameters: []
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Chat'
                description: Обертка ответа с данными
              example:
                data:
                  id: 334
                  name: 🤿 aqua
                  created_at: '2021-08-28T15:56:53.000Z'
                  owner_id: 185
                  member_ids:
                    - 185
                    - 186
                    - 187
                  group_tag_ids: []
                  channel: true
                  personal: false
                  public: false
                  last_message_at: '2021-08-28T15:56:53.000Z'
                  meet_room_url: https://meet.pachca.com/aqua-94bb21b5
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Chats
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCreateRequest'
            example:
              chat:
                name: 🤿 aqua
                member_ids:
                  - 186
                  - 187
                channel: true
                public: false
    get:
      operationId: ChatOperations_listChats
      description: |-
        Список чатов

        Метод для получения списка чатов по заданным параметрам.
      parameters:
        - name: sort[{field}]
          in: query
          required: false
          description: Составной параметр сортировки сущностей выборки. На данный момент сортировка доступна по полям `id` (идентификатор чата) и `last_message_at` (дата и время создания последнего сообщения).
          schema:
            allOf:
              - $ref: '#/components/schemas/SortOrder'
            default: desc
          explode: false
        - name: availability
          in: query
          required: false
          description: Параметр, который отвечает за доступность и выборку чатов для пользователя
          schema:
            allOf:
              - $ref: '#/components/schemas/ChatAvailability'
            default: is_member
          explode: false
        - name: last_message_at_after
          in: query
          required: false
          description: Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не раньше чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).
          schema:
            type: string
            format: date-time
          explode: false
        - name: last_message_at_before
          in: query
          required: false
          description: Фильтрация по времени создания последнего сообщения. Будут возвращены те чаты, время последнего созданного сообщения в которых не позже чем указанное (в формате YYYY-MM-DDThh:mm:ss.sssZ).
          schema:
            type: string
            format: date-time
          explode: false
        - name: personal
          in: query
          required: false
          description: Фильтрация по личным и групповым чатам. Если параметр не указан, возвращаются любые чаты.
          schema:
            type: boolean
          explode: false
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из meta.paginate.next_page)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Chat'
                description: Обертка ответа с данными и пагинацией
              example:
                meta:
                  paginate:
                    next_page: eyJpZCI6MTMsImRpciI6ImRlc2MifQ
                data:
                  - id: 334
                    name: 🤿 aqua
                    created_at: '2021-08-28T15:56:53.000Z'
                    owner_id: 185
                    member_ids:
                      - 185
                      - 186
                      - 187
                    group_tag_ids: []
                    channel: true
                    personal: false
                    public: false
                    last_message_at: '2021-08-28T15:58:13.000Z'
                    meet_room_url: https://meet.pachca.com/aqua-94bb21b5
                  - id: 333
                    name: development
                    created_at: '2021-08-28T15:54:22.000Z'
                    owner_id: 185
                    member_ids:
                      - 185
                    group_tag_ids:
                      - 22
                      - 24
                    channel: false
                    personal: false
                    public: true
                    last_message_at: '2021-08-28T15:56:12.000Z'
                    meet_room_url: https://meet.pachca.com/development-43sz53n8
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Chats
  /chats/exports:
    post:
      operationId: ExportOperations_requestExport
      description: |-
        Экспорт сообщений

        #corporation_price_only #owner_access_token_required

        Метод для запрашивания экспорта сообщений за указанный период.
      parameters: []
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/ApiError'
                  - $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Common
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExportRequest'
            example:
              start_at: '2025-03-20'
              end_at: '2025-03-20'
              webhook_url: https://webhook.site/9227d3b8-6e82-4e64-bf5d-ad972ad270f2
              chat_ids:
                - 1381521
  /chats/exports/{id}:
    get:
      operationId: ExportOperations_downloadExport
      description: |-
        Скачать архив экспорта

        #corporation_price_only #owner_access_token_required

        Метод для скачивания готового архива экспорта сообщений.

        Для получения архива вам необходимо знать его `id` и указать его в `URL` запроса.

        В ответ на запрос сервер вернёт `302 Found` с заголовком `Location`, содержащим временную ссылку на скачивание файла. Большинство HTTP-клиентов автоматически следуют редиректу и скачивают файл.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор экспорта
          schema:
            type: integer
            format: int32
      responses:
        '302':
          description: Redirection
          headers:
            location:
              required: true
              schema:
                type: string
                format: uri
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                anyOf:
                  - $ref: '#/components/schemas/OAuthError'
                  - anyOf:
                      - $ref: '#/components/schemas/ApiError'
                      - $ref: '#/components/schemas/OAuthError'
        '404':
          description: The server cannot find the requested resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Common
  /chats/{chatId}/group_tags:
    post:
      operationId: ChatMemberOperations_addTags
      description: |-
        Добавление тегов

        Метод для добавления тегов в состав участников беседы или канала.
      parameters:
        - name: chatId
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Members
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddTagsRequest'
            example:
              group_tag_ids:
                - 86
                - 18
  /chats/{chatId}/group_tags/{tagId}:
    delete:
      operationId: ChatMemberOperations_removeTag
      description: |-
        Исключение тега

        Метод для исключения тега из состава участников беседы или канала.

        Для исключения тега вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: chatId
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
        - name: tagId
          in: path
          required: true
          description: Идентификатор тега
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Members
  /chats/{chatId}/members/{userId}:
    delete:
      operationId: ChatMemberOperations_removeMember
      description: |-
        Исключение пользователя

        Метод для исключения пользователя из состава участников беседы или канала.

        Если пользователь является владельцем чата, то исключить его нельзя. Он может только самостоятельно выйти из чата, воспользовавшись методом [Выход из беседы или канала](DELETE /chats/{id}/leave).
      parameters:
        - name: chatId
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
        - name: userId
          in: path
          required: true
          description: Идентификатор пользователя
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Members
    put:
      operationId: ChatMemberOperations_updateMemberRole
      description: |-
        Редактирование роли

        Метод для редактирования роли пользователя или бота в беседе или канале.

        Для редактирования роли в беседе или канале вам необходимо знать `id` чата и пользователя (или бота) и указать их в `URL` запроса. Все редактируемые параметры роли указываются в теле запроса.

        Владельцу чата роль изменить нельзя. Он всегда имеет права Админа в чате.
      parameters:
        - name: chatId
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
        - name: userId
          in: path
          required: true
          description: Идентификатор пользователя
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Members
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateMemberRoleRequest'
            example:
              role: admin
  /chats/{id}:
    get:
      operationId: ChatOperations_getChat
      description: |-
        Информация о чате

        Метод для получения информации о чате.

        Для получения чата вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Chat'
                description: Обертка ответа с данными
              example:
                data:
                  id: 334
                  name: 🤿 aqua
                  created_at: '2021-08-28T15:56:53.000Z'
                  owner_id: 185
                  member_ids:
                    - 185
                    - 186
                    - 187
                  group_tag_ids: []
                  channel: true
                  personal: false
                  public: false
                  last_message_at: '2021-08-28T15:58:13.000Z'
                  meet_room_url: https://meet.pachca.com/aqua-94bb21b5
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Chats
    put:
      operationId: ChatOperations_updateChat
      description: |-
        Обновление чата

        Метод для обновления параметров чата.

        Для обновления нужно знать `id` чата и указать его в `URL`. Все обновляемые поля передаются в теле запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Chat'
                description: Обертка ответа с данными
              example:
                data:
                  id: 334
                  name: Бассейн
                  created_at: '2021-08-28T15:56:53.000Z'
                  owner_id: 185
                  member_ids:
                    - 185
                    - 186
                    - 187
                  group_tag_ids: []
                  channel: true
                  personal: false
                  public: true
                  last_message_at: '2021-08-28T15:58:23.000Z'
                  meet_room_url: https://meet.pachca.com/aqua-94bb21b5
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Chats
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatUpdateRequest'
            example:
              chat:
                name: Бассейн
                public: true
  /chats/{id}/archive:
    put:
      operationId: ChatOperations_archiveChat
      description: |-
        Архивация чата

        Метод для отправки чата в архив.

        Для отправки чата в архив вам необходимо знать `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Chats
  /chats/{id}/leave:
    delete:
      operationId: ChatMemberOperations_leaveChat
      description: |-
        Выход из беседы или канала

        Метод для самостоятельного выхода из беседы или канала.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Members
  /chats/{id}/members:
    get:
      operationId: ChatMemberOperations_listMembers
      description: |-
        Список участников чата

        Метод для получения актуального списка участников чата.

        Владелец пространства может получить состав участников любого чата пространства. Администраторы и боты могут получить список участников только тех чатов, в которых состоят (или которые являются открытыми).
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
        - name: role
          in: query
          required: false
          description: Роль в чате
          schema:
            allOf:
              - $ref: '#/components/schemas/ChatMemberRoleFilter'
            default: all
          explode: false
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из meta.paginate.next_page)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                description: Обертка ответа с данными и пагинацией
              example:
                meta:
                  paginate:
                    next_page: eyJpZCI6MTIwiwiZGlyIjoiYXNjIn0
                data:
                  - id: 12
                    first_name: Олег
                    last_name: Петров
                    nickname: olegpetrov
                    email: olegp@example.com
                    phone_number: ''
                    department: Продукт
                    title: CIO
                    role: admin
                    suspended: false
                    invite_status: confirmed
                    list_tags:
                      - Product
                      - Design
                    custom_properties:
                      - id: 1678
                        name: Город
                        data_type: string
                        value: Санкт-Петербург
                    user_status: null
                    bot: false
                    sso: false
                    created_at: '2020-06-08T09:10:11.000Z'
                    last_activity_at: '2025-01-20T13:40:07.000Z'
                    time_zone: Europe/Moscow
                    image_url: null
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Members
    post:
      operationId: ChatMemberOperations_addMembers
      description: |-
        Добавление пользователей

        Метод для добавления пользователей в состав участников беседы, канала или треда.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор чата (беседа, канал или чат треда)
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Members
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddMembersRequest'
            example:
              member_ids:
                - 186
                - 187
              silent: true
  /chats/{id}/unarchive:
    put:
      operationId: ChatOperations_unarchiveChat
      description: |-
        Разархивация чата

        Метод для возвращения чата из архива.

        Для разархивации чата вам необходимо знать её `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор чата
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Chats
  /custom_properties:
    get:
      operationId: CommonOperations_listProperties
      description: |-
        Список дополнительных полей

        #files_not_supported

        Метод для получения актуального списка дополнительных полей участников и напоминаний в вашей компании.

        По умолчанию в вашей компании все сущности имеют только базовые поля. Но администратор вашей компании может добавлять дополнительные поля, редактировать их и удалять. Если при создании сотрудников (или напоминаний) вы используете дополнительные поля, которые не являются актуальными (удалены или не существуют) - вы получите ошибку.
      parameters:
        - name: entity_type
          in: query
          required: true
          description: Тип сущности
          schema:
            $ref: '#/components/schemas/SearchEntityType'
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/CustomPropertyDefinition'
                description: Обертка ответа с данными
              example:
                data:
                  - id: 1487
                    name: Адрес
                    data_type: string
                  - id: 1489
                    name: Номер доступа
                    data_type: number
                  - id: 1572
                    name: Дата рождения
                    data_type: date
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Common
  /direct_url:
    post:
      operationId: DirectUploadOperations_uploadFile
      description: |-
        Загрузка файла

        #access_token_not_required

        Для того чтобы прикрепить файл к сообщению или к другой сущности через API, требуется сначала загрузить файл на сервер (через метод получения подписи и ключа), а затем сформировать ссылку на него.

        **Процесс загрузки состоит из трёх шагов:**

        1. [Получение подписи, ключа и других параметров](POST /uploads) — сделать `POST`-запрос без тела запроса для получения параметров загрузки.
        2. **Загрузка файла** — после получения всех параметров, нужно сделать `POST` запрос c форматом `multipart/form-data` на адрес `direct_url`, включая те же поля, что пришли (content-disposition, acl, policy, x-amz-credential, x-amz-algorithm, x-amz-date, x-amz-signature, key) и сам файл. При успешной загрузке — `HTTP` статус `201`.
        3. **Прикрепление файла к сообщению или другой сущности** — после загрузки файла, чтобы прикрепить его к сообщению или другой сущности API, необходимо сформировать путь файла. Для этого в поле `key`, полученном на этапе подписи, заменить шаблон `$filename` на фактическое имя файла. Пример: Если ваш файл называется `Логотип для сайта.png`, а в ответе на метод `/uploads` ключ был `attaches/files/93746/e354-...-5e6f/$filename`, итоговый ключ будет `attaches/files/93746/e354-...-5e6f/Логотип для сайта.png`.
      parameters: []
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
      tags:
        - Common
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUploadRequest'
  /group_tags:
    post:
      operationId: GroupTagOperations_createTag
      description: |-
        Новый тег

        #admin_access_token_required

        Метод для создания нового тега.
      parameters: []
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/GroupTag'
                description: Обертка ответа с данными
              example:
                data:
                  id: 1
                  name: Название тега
                  users_count: 0
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Group tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupTagRequest'
            example:
              group_tag:
                name: Название тега
    get:
      operationId: GroupTagOperations_listTags
      description: |-
        Список тегов сотрудников

        Метод для получения актуального списка тегов сотрудников. Названия тегов являются уникальными в компании.
      parameters:
        - name: names
          in: query
          required: false
          description: Массив названий тегов, по которым вы хотите отфильтровать список
          schema:
            $ref: '#/components/schemas/TagNamesFilter'
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из `meta.paginate.next_page`)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/GroupTag'
                description: Обертка ответа с данными и пагинацией
              example:
                meta:
                  paginate:
                    next_page: eyJpZCI6OTExMywiZGlyIjoiYXNjIn0
                data:
                  - id: 9111
                    name: Design
                    users_count: 6
                  - id: 9113
                    name: iOS
                    users_count: 4
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Group tags
  /group_tags/{id}:
    get:
      operationId: GroupTagOperations_getTag
      description: |-
        Информация о теге

        Метод для получения информации о теге. Названия тегов являются уникальными в компании.

        Для получения тега вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор тега
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/GroupTag'
                description: Обертка ответа с данными
              example:
                data:
                  id: 9111
                  name: Design
                  users_count: 6
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Group tags
    put:
      operationId: GroupTagOperations_updateTag
      description: |-
        Редактирование тега

        #admin_access_token_required

        Метод для редактирования тега.

        Для редактирования тега вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры тега указываются в теле запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор тега
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/GroupTag'
                description: Обертка ответа с данными
              example:
                data:
                  id: 1
                  name: Новое название тега
                  users_count: 0
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Group tags
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupTagRequest'
            example:
              group_tag:
                name: Новое название тега
    delete:
      operationId: GroupTagOperations_deleteTag
      description: |-
        Удаление тега

        #admin_access_token_required

        Метод для удаления тега.

        Для удаления тега вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор тега
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Group tags
  /group_tags/{id}/users:
    get:
      operationId: GroupTagOperations_getTagUsers
      description: |-
        Список сотрудников тега

        Метод для получения актуального списка сотрудников тега.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор тега
          schema:
            type: integer
            format: int32
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из `meta.paginate.next_page`)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                description: Обертка ответа с данными и пагинацией
              example:
                data:
                  - id: 12
                    first_name: Олег
                    last_name: Петров
                    nickname: olegpetrov
                    email: olegp@example.com
                    phone_number: ''
                    department: Продукт
                    title: CIO
                    role: admin
                    suspended: false
                    invite_status: confirmed
                    list_tags:
                      - Product
                      - Design
                    custom_properties:
                      - id: 1678
                        name: Город
                        data_type: string
                        value: Санкт-Петербург
                    user_status: null
                    bot: false
                    sso: false
                    created_at: '2020-06-08T09:10:11.000Z'
                    last_activity_at: '2025-01-20T13:40:07.000Z'
                    time_zone: Europe/Moscow
                    image_url: null
                  - id: 13
                    first_name: Сергей
                    last_name: Кузнецов
                    nickname: skuz
                    email: sergkuzn@example.com
                    phone_number: ''
                    department: Разработка
                    title: iOS Developer
                    role: user
                    suspended: false
                    invite_status: confirmed
                    list_tags:
                      - Development
                      - Android
                    custom_properties:
                      - id: 1678
                        name: Город
                        data_type: string
                        value: Москва
                    user_status:
                      emoji: 🎮
                      title: Очень занят
                      expires_at: '2024-04-08T10:00:00.000Z'
                    bot: false
                    sso: false
                    created_at: '2020-06-08T09:31:17.000Z'
                    last_activity_at: '2025-01-20T07:00:32.000Z'
                    time_zone: Europe/Moscow
                    image_url: null
                  - id: 14
                    first_name: Дмитрий
                    last_name: Смирнов
                    nickname: dsmir
                    email: ds@example.com
                    phone_number: ''
                    department: Разработка
                    title: Android Developer
                    role: user
                    suspended: false
                    invite_status: confirmed
                    list_tags:
                      - Development
                      - Frontend
                    custom_properties:
                      - id: 1678
                        name: Город
                        data_type: string
                        value: Санкт-Петербург
                    user_status:
                      emoji: 🚀
                      title: Лечу
                      expires_at: null
                    bot: false
                    sso: false
                    created_at: '2020-06-08T09:32:57.000Z'
                    last_activity_at: '2025-01-20T13:51:25.000Z'
                    time_zone: Europe/Moscow
                    image_url: null
                meta:
                  paginate:
                    next_page: eyJpZCI6MTQsImRpciI6ImFzYyJ9
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Group tags
  /messages:
    post:
      operationId: MessageOperations_createMessage
      description: |-
        Новое сообщение

        Метод для отправки сообщения в беседу или канал, личного сообщения пользователю или комментария в тред.

        При использовании `entity_type: "discussion"` (или просто без указания `entity_type`) допускается отправка любого `chat_id` в поле `entity_id`. То есть, сообщение можно отправить зная только идентификатор чата. При этом, вы имеете возможность отправить сообщение в тред по его идентификатору или личное сообщение по идентификатору пользователя.

        Для отправки личного сообщения пользователю создавать чат не требуется. Достаточно указать `entity_type: "user"` и идентификатор пользователя. Чат будет создан автоматически, если между вами ещё не было переписки. Между двумя пользователями может быть только один личный чат.
      parameters: []
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Message'
                description: Обертка ответа с данными
              example:
                data:
                  id: 194275
                  entity_type: discussion
                  entity_id: 334
                  chat_id: 334
                  content: Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)
                  user_id: 185
                  created_at: '2021-08-28T15:57:23.000Z'
                  url: https://app.pachca.com/chats/334?message=194275
                  files: []
                  buttons:
                    - - text: Подробнее
                        url: https://example.com/details
                      - text: Отлично!
                        data: awesome
                  thread: null
                  forwarding: null
                  parent_message_id: null
                  display_avatar_url: null
                  display_name: null
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageCreateRequest'
            example:
              message:
                entity_type: discussion
                entity_id: 198
                content: Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)
                buttons:
                  - - text: Подробнее
                      url: https://example.com/details
                    - text: Отлично!
                      data: awesome
    get:
      operationId: ChatMessageOperations_listChatMessages
      description: |-
        Список сообщений чата

        Метод для получения списка сообщений бесед, каналов, тредов и личных сообщений.

        Для получения сообщений вам необходимо знать `chat_id` требуемой беседы, канала, треда или диалога, и указать его в `URL` запроса. Сообщения будут возвращены в порядке убывания даты отправки (то есть, сначала будут идти последние сообщения чата). Для получения более ранних сообщений чата доступны параметры `limit` и `cursor`.
      parameters:
        - name: chat_id
          in: query
          required: true
          description: Идентификатор чата (беседа, канал, диалог или чат треда)
          schema:
            type: integer
            format: int32
          explode: false
        - name: sort[{field}]
          in: query
          required: false
          description: Составной параметр сортировки сущностей выборки. На данный момент сортировка доступна только по полю `id` (идентификатор сообщения).
          schema:
            allOf:
              - $ref: '#/components/schemas/SortOrder'
            default: desc
          explode: false
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из `meta.paginate.next_page`)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Message'
                description: Обертка ответа с данными и пагинацией
              example:
                data:
                  - id: 1194277
                    entity_type: discussion
                    entity_id: 198
                    chat_id: 198
                    content: Это сообщение тоже попадёт в экспорт
                    user_id: 12
                    created_at: '2023-09-18T13:43:32.000Z'
                    url: https://app.pachca.com/chats/198?message=1194277
                    files: []
                    buttons: []
                    thread:
                      id: 2633
                      chat_id: 44997
                      message_id: 1194277
                      message_chat_id: 198
                      updated_at: '2023-09-18T13:43:32.000Z'
                    forwarding: null
                    parent_message_id: null
                    display_avatar_url: null
                    display_name: null
                  - id: 1194276
                    entity_type: discussion
                    entity_id: 198
                    chat_id: 198
                    content: '**Andrew** добавил **Export bot** в беседу'
                    user_id: 12
                    created_at: '2023-09-18T13:43:27.000Z'
                    url: https://app.pachca.com/chats/198?message=1194276
                    files: []
                    buttons: []
                    thread: null
                    forwarding: null
                    parent_message_id: null
                    display_avatar_url: null
                    display_name: null
                  - id: 1194275
                    entity_type: discussion
                    entity_id: 198
                    chat_id: 198
                    content: '**Andrew** создал беседу'
                    user_id: 12
                    created_at: '2023-09-18T13:43:19.000Z'
                    url: https://app.pachca.com/chats/198?message=1194275
                    files: []
                    buttons: []
                    thread: null
                    forwarding: null
                    parent_message_id: null
                    display_avatar_url: null
                    display_name: null
                meta:
                  paginate:
                    next_page: eyJpZCI6MTE5NDI3NSwiZGlyIjoiZGVzYyJ9
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Messages
  /messages/{id}:
    get:
      operationId: MessageOperations_getMessage
      description: |-
        Информация о сообщении

        Метод для получения информации о сообщении.

        Для получения сообщения вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Message'
                description: Обертка ответа с данными
              example:
                data:
                  id: 194275
                  entity_type: discussion
                  entity_id: 198
                  chat_id: 198
                  content: Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)
                  user_id: 12
                  created_at: '2020-06-08T09:32:57.000Z'
                  url: https://app.pachca.com/chats/198?message=194275
                  files:
                    - id: 3560
                      key: attaches/files/12/21zu7934-02e1-44d9-8df2-0f970c259796/congrat.png
                      name: congrat.png
                      file_type: image
                      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
                      width: 1920
                      height: 1080
                  buttons: []
                  thread:
                    id: 29873
                    chat_id: 1949863
                    message_id: 194275
                    message_chat_id: 198
                    updated_at: '2020-06-08T09:32:57.000Z'
                  forwarding: null
                  parent_message_id: 194274
                  display_avatar_url: null
                  display_name: null
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Messages
    put:
      operationId: MessageOperations_updateMessage
      description: |-
        Редактирование сообщения

        Метод для редактирования сообщения или комментария.

        Для редактирования сообщения вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сообщения указываются в теле запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Message'
                description: Обертка ответа с данными
              example:
                data:
                  id: 7231942
                  entity_type: discussion
                  entity_id: 17452
                  chat_id: 17452
                  content: 'Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.'
                  user_id: 65
                  created_at: '2022-06-08T09:32:57.000Z'
                  url: https://app.pachca.com/chats/17452?message=7231942
                  files: []
                  buttons: []
                  thread: null
                  forwarding: null
                  parent_message_id: null
                  display_avatar_url: null
                  display_name: null
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Messages
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageUpdateRequest'
            example:
              message:
                content: 'Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.'
                files: []
    delete:
      operationId: MessageOperations_deleteMessage
      description: |-
        Удаление сообщения

        #admin_access_token_required

        Метод для удаления сообщения.

        Удаление сообщения доступно отправителю, админам и редакторам в чате. В личных сообщениях оба пользователя являются редакторами. Ограничений по давности отправки сообщения нет.

        Для удаления сообщения вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Messages
  /messages/{id}/link_previews:
    post:
      operationId: LinkPreviewOperations_createLinkPreviews
      description: |-
        Unfurl (разворачивание ссылок)

        #unfurling_bot_access_token_required

        Метод для создания предпросмотров ссылок в сообщениях.

        Для создания предпросмотров ссылок вам необходимо знать `id` сообщения и указать его в `URL` запроса.

        Изображения вы можете предоставить как публичной ссылкой (параметром `image_url`), так и с помощью прямой загрузки файла на наш сервер (параметром `image`) через метод `Загрузка файлов`. Если вы указали оба параметра сразу, то `image` является более приоритетным.

        Если среди присланных `URL`-ключей будет выявлена ошибка (такого `URL` нет в сообщении или боту не прописан в настройках домен указанного `URL`), то запрос не будет выполнен (не будет создано ни одного предпросмотра).

        На данный момент поддерживается отображение только первого созданного предпросмотра ссылки к сообщению. Все присланные вами `link_previews` будут сохранены и появятся в сообщениях в ближайших обновлениях.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Link Previews
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LinkPreviewsRequest'
  /messages/{id}/pin:
    post:
      operationId: MessageOperations_pinMessage
      description: |-
        Закрепление сообщения

        Метод для закрепления сообщения в чате.

        Для закрепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '409':
          description: The request conflicts with the current state of the server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Messages
    delete:
      operationId: MessageOperations_unpinMessage
      description: |-
        Открепление сообщения

        Метод для открепления сообщения из чата.

        Для открепления сообщения вам необходимо знать `id` сообщения и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Messages
  /messages/{id}/reactions:
    post:
      operationId: ReactionOperations_addReaction
      description: |-
        Добавление реакции

        Метод для добавления реакции на сообщение.

        Для добавления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения отправляются в виде символов `Emoji`. Если пользователь уже ставил реакцию - повторно она установлена не будет. Для удаления реакции надо воспользоваться методом [Удаление реакции](DELETE /messages/{id}/reactions).

        **Лимиты реакций:**

        - Каждый пользователь может установить не более **20 уникальных** реакций
        - Сообщение может иметь не более **30 уникальных** реакций
        - Общее количество реакций на сообщение не может превышать **1000**
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Reaction'
              example:
                user_id: 355929
                created_at: '2026-01-24T12:18:34.000Z'
                code: 👍
                name: ':+1::skin-tone-1:'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Reactions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReactionRequest'
            example:
              code: 👍
              name: ':+1:'
    delete:
      operationId: ReactionOperations_removeReaction
      description: |-
        Удаление реакции

        Метод для удаления реакции на сообщение.

        Для удаления реакции вам необходимо знать `id` сообщения и указать его в `URL` запроса. Реакции на сообщения хранятся в виде символов `Emoji`.

        Удалять можно только те реакции, которые были поставлены авторизованным пользователем.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
        - name: code
          in: query
          required: true
          description: Emoji символ реакции
          schema:
            type: string
          explode: false
        - name: name
          in: query
          required: false
          description: Текстовое имя эмодзи (используется для кастомных эмодзи)
          schema:
            type: string
          explode: false
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Reactions
    get:
      operationId: ReactionOperations_listReactions
      description: |-
        Список реакций

        Метод для получения актуального списка реакций на сообщение.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из `meta.paginate.next_page`)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Reaction'
                description: Обертка ответа с данными и пагинацией
              example:
                data:
                  - user_id: 76243
                    created_at: '2023-09-11T14:59:35.000Z'
                    code: 👍
                    name: ':+1:'
                  - user_id: 10764
                    created_at: '2023-09-11T15:00:31.000Z'
                    code: 👍
                    name: ':+1:'
                  - user_id: 27494
                    created_at: '2023-09-11T15:01:27.000Z'
                    code: 👍
                    name: ':+1:'
                  - user_id: 27494
                    created_at: '2023-09-11T15:01:47.000Z'
                    code: 🔥
                    name: ':fire:'
                  - user_id: 11887
                    created_at: '2023-09-11T15:12:49.000Z'
                    code: 👍
                    name: ':+1:'
                  - user_id: 11887
                    created_at: '2023-09-11T15:13:46.000Z'
                    code: ⭐
                    name: ':star:'
                  - user_id: 11887
                    created_at: '2023-09-11T15:13:47.000Z'
                    code: 🔥
                    name: ':fire:'
                meta:
                  paginate:
                    next_page: eyJpZCI6NzcsImRpciI6ImFzYyJ9
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Reactions
  /messages/{id}/read_member_ids:
    get:
      operationId: ReadMemberOperations_listReadMembers
      description: |-
        Список прочитавших сообщение

        Метод для получения актуального списка пользователей, прочитавших сообщение.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 300
            default: 300
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из `meta.paginate.next_page`)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      type: integer
                      format: int32
                description: Обертка ответа с данными и пагинацией
              example:
                meta:
                  paginate:
                    next_page: eyJpZCI6MTYsImRpciI6ImFzYyJ9
                data:
                  - 12
                  - 13
                  - 14
                  - 15
                  - 16
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Read member
  /messages/{id}/thread:
    post:
      operationId: ThreadOperations_createThread
      description: |-
        Новый тред

        Метод для создания нового треда к сообщению.

        Если у сообщения уже был создан тред, то в ответе на запрос вернётся информация об уже созданном ранее треде.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор сообщения
          schema:
            type: integer
            format: int32
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Thread'
                description: Обертка ответа с данными
              example:
                data:
                  id: 265142
                  chat_id: 2637266155
                  message_id: 154332686
                  message_chat_id: 2637266154
                  updated_at: '2023-02-01T19:20:47.204Z'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Thread
  /profile:
    get:
      operationId: ProfileOperations_getProfile
      description: |-
        Информация о профиле

        Метод для получения информации о своем профиле.
      parameters: []
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/User'
                description: Обертка ответа с данными
              example:
                data:
                  id: 12
                  first_name: Олег
                  last_name: Петров
                  nickname: ''
                  email: olegp@example.com
                  phone_number: ''
                  department: Продукт
                  title: CIO
                  role: admin
                  suspended: false
                  invite_status: confirmed
                  list_tags:
                    - Product
                    - Design
                  custom_properties:
                    - id: 1678
                      name: Город
                      data_type: string
                      value: Санкт-Петербург
                  user_status: null
                  bot: false
                  sso: false
                  created_at: '2020-06-08T09:32:57.000Z'
                  last_activity_at: '2025-01-20T13:40:07.000Z'
                  time_zone: Europe/Moscow
                  image_url: null
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
      tags:
        - Profile
  /profile/status:
    get:
      operationId: ProfileOperations_getStatus
      description: |-
        Текущий статус

        Метод для получения информации о своем статусе.
      parameters: []
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    type: object
                    allOf:
                      - $ref: '#/components/schemas/UserStatus'
                    nullable: true
                description: Обертка ответа с данными
              example:
                data:
                  emoji: 🎮
                  title: Очень занят
                  expires_at: '2024-04-08T10:00:00.000Z'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
      tags:
        - Profile
    put:
      operationId: ProfileOperations_updateStatus
      description: |-
        Новый статус

        Метод для установки себе нового статуса.
      parameters: []
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/UserStatus'
                description: Обертка ответа с данными
              example:
                data:
                  emoji: 🎮
                  title: Очень занят
                  expires_at: '2024-04-08T10:00:00.000Z'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Profile
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatusUpdateRequest'
            example:
              status:
                emoji: 🎮
                title: Очень занят
                expires_at: '2024-04-08T10:00:00.000Z'
    delete:
      operationId: ProfileOperations_deleteStatus
      description: |-
        Удаление статуса

        Метод для удаления своего статуса.
      parameters: []
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
      tags:
        - Profile
  /tasks:
    post:
      operationId: TaskOperations_createTask
      description: |-
        Новое напоминание

        Метод для создания нового напоминания.

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

        У напоминания должны быть ответственные, если их не указывать - ответственным назначается вы.

        Ответственным для напоминания без привязки к каким-либо сущностям может стать любой сотрудник компании. Актуальный состав сотрудников компании вы можете получить в методе [список сотрудников](GET /users).

        На текущий момент данный метод поддерживает только создание напоминаний без привязки к каким-либо сущностям.
      parameters: []
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Task'
                description: Обертка ответа с данными
              example:
                data:
                  id: 22283
                  kind: reminder
                  content: Забрать со склада 21 заказ
                  due_at: '2020-06-05T09:00:00.000Z'
                  priority: 2
                  user_id: 12
                  status: undone
                  created_at: '2020-06-04T10:37:57.000Z'
                  performer_ids:
                    - 12
                  all_day: false
                  custom_properties:
                    - id: 78
                      name: Место
                      data_type: string
                      value: Синий склад
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Tasks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskCreateRequest'
            example:
              task:
                kind: reminder
                content: Забрать со склада 21 заказ
                due_at: '2020-06-05T12:00:00.000+03:00'
                priority: 2
                custom_properties:
                  - id: 78
                    value: Синий склад
    get:
      operationId: TaskOperations_listTasks
      description: |-
        Список напоминаний

        Метод для получения списка напоминаний.
      parameters:
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из `meta.paginate.next_page`)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Task'
                description: Обертка ответа с данными и пагинацией
              example:
                data:
                  - id: 22283
                    kind: reminder
                    content: Забрать со склада 21 заказ
                    due_at: '2020-06-05T09:00:00.000Z'
                    priority: 2
                    user_id: 12
                    status: undone
                    created_at: '2020-06-04T10:37:57.000Z'
                    performer_ids:
                      - 12
                    all_day: false
                    custom_properties:
                      - id: 78
                        name: Место
                        data_type: string
                        value: Синий склад
                  - id: 22284
                    kind: call
                    content: Позвонить клиенту
                    due_at: '2020-06-06T14:00:00.000Z'
                    priority: 3
                    user_id: 12
                    status: done
                    created_at: '2020-06-04T11:20:00.000Z'
                    performer_ids:
                      - 12
                      - 13
                    all_day: false
                    custom_properties: []
                meta:
                  paginate:
                    next_page: eyJpZCI6MjIyODQsImRpciI6ImFzYyJ9
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
      tags:
        - Tasks
  /tasks/{id}:
    get:
      operationId: TaskOperations_getTask
      description: |-
        Информация о напоминании

        Метод для получения информации о напоминании.

        Для получения напоминания вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор напоминания
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Task'
                description: Обертка ответа с данными
              example:
                data:
                  id: 22283
                  kind: reminder
                  content: Забрать со склада 21 заказ
                  due_at: '2020-06-05T09:00:00.000Z'
                  priority: 2
                  user_id: 12
                  status: undone
                  created_at: '2020-06-04T10:37:57.000Z'
                  performer_ids:
                    - 12
                  all_day: false
                  custom_properties:
                    - id: 78
                      name: Место
                      data_type: string
                      value: Синий склад
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Tasks
    put:
      operationId: TaskOperations_updateTask
      description: |-
        Редактирование напоминания

        Метод для редактирования напоминания.

        Для редактирования напоминания вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры напоминания указываются в теле запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор напоминания
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Task'
                description: Обертка ответа с данными
              example:
                data:
                  id: 22283
                  kind: reminder
                  content: Забрать со склада 21 заказ
                  due_at: '2020-06-05T09:00:00.000Z'
                  priority: 2
                  user_id: 12
                  status: done
                  created_at: '2020-06-04T10:37:57.000Z'
                  performer_ids:
                    - 12
                  all_day: false
                  custom_properties:
                    - id: 78
                      name: Место
                      data_type: string
                      value: Синий склад
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Tasks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaskUpdateRequest'
            example:
              task:
                status: done
    delete:
      operationId: TaskOperations_deleteTask
      description: |-
        Удаление напоминания

        Метод для удаления напоминания.

        Для удаления напоминания вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор напоминания
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Tasks
  /threads/{id}:
    get:
      operationId: ThreadOperations_getThread
      description: |-
        Информация о треде

        Метод для получения информации о треде.

        Для получения треда вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор треда
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/Thread'
                description: Обертка ответа с данными
              example:
                data:
                  id: 265142
                  chat_id: 2637266155
                  message_id: 154332686
                  message_chat_id: 2637266154
                  updated_at: '2023-02-01T19:20:47.204Z'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Thread
  /uploads:
    post:
      operationId: UploadOperations_getUploadParams
      description: |-
        Получение подписи, ключа и других параметров

        Метод для получения подписи, ключа и других параметров, необходимых для загрузки файла.

        Данный метод необходимо использовать для загрузки каждого файла.
      parameters: []
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadParams'
              example:
                Content-Disposition: attachment
                acl: private
                policy: eyJloNBpcmF0aW9uIjoiMjAyPi0xMi0wOFQwNjo1NzozNFHusCJjb82kaXRpb25zIjpbeyJidWNrZXQiOiJwYWNoY2EtcHJhYy11cGxvYWRzOu0sWyJzdGFydHMtd3l4aCIsIiRrZXkiLCJhdHRhY8hlcy9maWxlcy1xODUyMSJdLHsiQ29udGVudC1EaXNwb3NpdGlvbiI6ImF0dGFjaG1lbnQifSx2ImFjbCI3InByaXZhdGUifSx7IngtYW16LWNyZWRlbnRpYWwi2iIxNDIxNTVfc3RhcGx4LzIwMjIxMTI0L2J1LTFhL5MzL1F2czRfcmVxdWVzdCJ9LHsieC1hbXotYWxnb3JpdGhtIjytQVdTNC1ITUFDLVNIQTI1NiJ7LHsieC1hbXotZGF0ZSI6IjIwMjIxMTI0VDA2NTczNFoifV12
                x-amz-credential: 286471_server/20211122/kz-6x/s3/aws4_request
                x-amz-algorithm: AWS4-HMAC-SHA256
                x-amz-date: 20211122T065734Z
                x-amz-signature: 87e8f3ba4083c937c0e891d7a11tre932d8c33cg4bacf5380bf27624c1ok1475
                key: attaches/files/93746/e354fd79-9jh6-f2hd-fj83-709dae24c763/$filename
                direct_url: https://api.pachca.com/api/v3/direct_upload
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
      tags:
        - Common
  /users:
    post:
      operationId: UserOperations_createUser
      description: |-
        Создать сотрудника

        #admin_access_token_required

        Метод для создания нового сотрудника в вашей компании.

        Вы можете заполнять дополнительные поля сотрудника, которые созданы в вашей компании. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).
      parameters: []
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/User'
                description: Обертка ответа с данными
              example:
                data:
                  id: 12
                  first_name: Олег
                  last_name: Петров
                  nickname: ''
                  email: olegp@example.com
                  phone_number: ''
                  department: Продукт
                  title: ''
                  role: admin
                  suspended: false
                  invite_status: confirmed
                  list_tags:
                    - Product
                    - Design
                  custom_properties:
                    - id: 1678
                      name: Город
                      data_type: string
                      value: Санкт-Петербург
                  user_status: null
                  bot: false
                  sso: false
                  created_at: '2023-06-08T09:31:17.000Z'
                  last_activity_at: '2023-06-08T09:31:17.000Z'
                  time_zone: Europe/Moscow
                  image_url: null
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreateRequest'
            example:
              user:
                first_name: Олег
                last_name: Петров
                email: olegp@example.com
                department: Продукт
                list_tags:
                  - Product
                  - Design
                custom_properties:
                  - id: 1678
                    value: Санкт-Петербург
              skip_email_notify: true
    get:
      operationId: UserOperations_listUsers
      description: |-
        Список сотрудников

        Метод для получения актуального списка сотрудников вашей компании.
      parameters:
        - name: query
          in: query
          required: false
          description: 'Поисковая фраза для фильтрации результатов. Поиск работает по полям: `first_name` (имя), `last_name` (фамилия), `email` (электронная почта), `phone_number` (телефон) и `nickname` (никнейм).'
          schema:
            type: string
          explode: false
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из `meta.paginate.next_page`)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/User'
                description: Обертка ответа с данными и пагинацией
              example:
                meta:
                  paginate:
                    next_page: eyJxZCO2MiwiZGlyIjomSNYjIn3
                data:
                  - id: 12
                    first_name: Олег
                    last_name: Петров
                    nickname: olegpetrov
                    email: olegp@example.com
                    phone_number: ''
                    department: Продукт
                    title: CIO
                    role: admin
                    suspended: false
                    invite_status: confirmed
                    list_tags:
                      - Product
                      - Design
                    custom_properties:
                      - id: 1678
                        name: Город
                        data_type: string
                        value: Санкт-Петербург
                    user_status: null
                    bot: false
                    sso: false
                    created_at: '2020-06-08T09:10:11.000Z'
                    last_activity_at: '2025-01-20T13:40:07.000Z'
                    time_zone: Europe/Moscow
                    image_url: null
                  - id: 13
                    first_name: Сергей
                    last_name: Кузнецов
                    nickname: skuz
                    email: sergkuzn@example.com
                    phone_number: ''
                    department: Разработка
                    title: iOS Developer
                    role: user
                    suspended: false
                    invite_status: confirmed
                    list_tags:
                      - Development
                      - Android
                    custom_properties:
                      - id: 1678
                        name: Город
                        data_type: string
                        value: Москва
                    user_status:
                      emoji: 🎮
                      title: Очень занят
                      expires_at: '2024-04-08T10:00:00.000Z'
                    bot: false
                    sso: false
                    created_at: '2020-06-08T09:31:17.000Z'
                    last_activity_at: '2025-01-20T07:00:32.000Z'
                    time_zone: Europe/Moscow
                    image_url: null
                  - id: 14
                    first_name: Дмитрий
                    last_name: Смирнов
                    nickname: dsmir
                    email: ds@example.com
                    phone_number: ''
                    department: Разработка
                    title: Android Developer
                    role: user
                    suspended: false
                    invite_status: confirmed
                    list_tags:
                      - Development
                      - Frontend
                    custom_properties:
                      - id: 1678
                        name: Город
                        data_type: string
                        value: Санкт-Петербург
                    user_status:
                      emoji: 🚀
                      title: Лечу
                      expires_at: null
                    bot: false
                    sso: false
                    created_at: '2020-06-08T09:32:57.000Z'
                    last_activity_at: '2025-01-20T13:51:25.000Z'
                    time_zone: Europe/Moscow
                    image_url: null
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Users
  /users/{id}:
    get:
      operationId: UserOperations_getUser
      description: |-
        Информация о сотруднике

        Метод для получения информации о сотруднике.

        Для получения сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор пользователя
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/User'
                description: Обертка ответа с данными
              example:
                data:
                  id: 12
                  first_name: Олег
                  last_name: Петров
                  nickname: ''
                  email: olegp@example.com
                  phone_number: ''
                  department: Продукт
                  title: CIO
                  role: admin
                  suspended: false
                  invite_status: confirmed
                  list_tags:
                    - Product
                    - Design
                  custom_properties:
                    - id: 1678
                      name: Город
                      data_type: string
                      value: Санкт-Петербург
                  user_status: null
                  bot: false
                  sso: false
                  created_at: '2020-06-08T09:32:57.000Z'
                  last_activity_at: '2025-01-20T13:40:07.000Z'
                  time_zone: Europe/Moscow
                  image_url: null
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Users
    put:
      operationId: UserOperations_updateUser
      description: |-
        Редактирование сотрудника

        #admin_access_token_required

        Метод для редактирования сотрудника.

        Для редактирования сотрудника вам необходимо знать его `id` и указать его в `URL` запроса. Все редактируемые параметры сотрудника указываются в теле запроса. Получить актуальный список идентификаторов дополнительных полей сотрудника вы можете в методе [Список дополнительных полей](GET /custom_properties).
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор пользователя
          schema:
            type: integer
            format: int32
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  data:
                    $ref: '#/components/schemas/User'
                description: Обертка ответа с данными
              example:
                data:
                  id: 12
                  first_name: Олег
                  last_name: Петров
                  nickname: olegpetrov
                  email: olegp@example.com
                  phone_number: ''
                  department: Продукт
                  title: CIO
                  role: user
                  suspended: false
                  invite_status: confirmed
                  list_tags:
                    - Product
                  custom_properties:
                    - id: 1678
                      name: Город
                      data_type: string
                      value: Санкт-Петербург
                  user_status: null
                  bot: false
                  sso: false
                  created_at: '2023-07-08T09:31:17.000Z'
                  last_activity_at: '2025-01-20T13:40:07.000Z'
                  time_zone: Europe/Moscow
                  image_url: null
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Users
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserUpdateRequest'
            example:
              user:
                nickname: olegpetrov
                role: user
                list_tags:
                  - Product
    delete:
      operationId: UserOperations_deleteUser
      description: |-
        Удаление сотрудника

        #admin_access_token_required

        Метод для удаления сотрудника.

        Для удаления сотрудника вам необходимо знать его `id` и указать его в `URL` запроса.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор пользователя
          schema:
            type: integer
            format: int32
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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:
        - Users
  /views/open:
    post:
      operationId: FormOperations_openView
      description: |-
        Открытие представления

        Метод для открытия модального окна с представлением для пользователя.

        Чтобы открыть модальное окно с представлением, ваше приложение должно иметь действительный, неистекший `trigger_id`.
      parameters: []
      responses:
        '201':
          description: The request has succeeded and a new resource has been created as a result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '410':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Views
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OpenViewRequest'
            example:
              trigger_id: 791a056b-006c-49dd-834b-c633fde52fe8
              type: modal
              private_metadata: "{'timeoff_id':4378}"
              callback_id: timeoff_reguest_form
              view:
                title: Уведомление об отпуске
                close_text: Закрыть
                submit_text: Отправить заявку
                blocks:
                  - type: plain_text
                    text: Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.
                  - type: markdown
                    text: Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)
                  - type: header
                    text: Основная информация
                  - type: date
                    name: date_start
                    label: Дата начала отпуска
                    initial_date: '2025-07-01'
                    required: true
                  - type: date
                    name: date_end
                    label: Дата окончания отпуска
                    initial_date: '2025-07-28'
                    required: true
                  - type: file_input
                    name: request_doc
                    label: Заявление
                    filetypes:
                      - pdf
                      - jpg
                      - png
                    max_files: 1
                    required: true
                    hint: Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)
                  - type: radio
                    name: accessibility
                    label: Доступность
                    options:
                      - text: Ничего
                        value: nothing
                        selected: true
                      - text: Только телефон
                        value: phone_only
                      - text: Телефон и ноутбук
                        value: phone_notebook
                    required: true
                    hint: Если вы не планируете выходить на связь, то выберите вариант Ничего
                  - type: divider
                  - type: header
                    text: Дополнительно
                  - type: input
                    name: info
                    label: Описание отпуска
                    placeholder: Куда собираетесь и что будете делать
                    multiline: true
                    hint: Возможно вам подскаджут, какие места лучше посетить
                  - type: checkbox
                    name: newsletters
                    label: Рассылки
                    options:
                      - text: Получать уведомления о новых задачах в команде
                        value: new_tasks
                        description: Каждый день бот будет присылать список новых задач в вашей команде
                      - text: Получать уведомления об обновлениях в проектах
                        value: project_updates
                        description: Два раза в неделю бот будет присылать обновления по проектам
                  - type: select
                    name: team
                    label: Выберите команду
                    options:
                      - text: Все команды
                        value: all
                      - text: Web
                        value: web
                        selected: true
                      - text: iOS
                        value: ios
                      - text: Android
                        value: android
                      - text: Back
                        value: back
                      - text: Design
                        value: design
                      - text: Success
                        value: success
                  - type: time
                    name: newsletter_time
                    label: Время рассылки
                    initial_time: '11:00'
                    hint: Укажите, в какое время присылать выбранные рассылки
  /webhooks/events:
    get:
      operationId: BotOperations_getWebhookEvents
      description: |-
        История событий

        #bot_access_token_required

        Метод для получения истории последних событий бота. Данный метод будет полезен, если вы не можете получать события в реальном времени на ваш `URL`, но вам требуется обрабатывать все события, на которые вы подписались.

        История событий сохраняется только при активном пункте «Сохранять историю событий» во вкладке «Исходящий webhook» настроек бота. При этом указывать «Webhook `URL`» не требуется.

        Для получения истории событий конкретного бота вам необходимо знать его `access_token` и использовать его при запросе. Каждое событие представляет `JSON` объект вебхука.
      parameters:
        - name: limit
          in: query
          required: false
          description: Количество возвращаемых сущностей за один запрос
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 50
            default: 50
          explode: false
        - name: cursor
          in: query
          required: false
          description: Курсор для пагинации (из meta.paginate.next_page)
          schema:
            type: string
          explode: false
      responses:
        '200':
          description: The request has succeeded.
          content:
            application/json:
              schema:
                type: object
                required:
                  - data
                properties:
                  meta:
                    $ref: '#/components/schemas/PaginationMeta'
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/WebhookEvent'
                description: Обертка ответа с данными и пагинацией
              example:
                meta:
                  paginate:
                    next_page: eyMxFCO2MiwiZGlyIjpiSNYjIn1
                data:
                  - id: 01KAJZ2XDSS2S3DSW9EXJZ0TBV
                    event_type: company_member_update
                    payload:
                      event: update
                      type: company_member
                      webhook_timestamp: 1763635376
                      user_ids:
                        - 13
                      created_at: '2025-11-20T10:42:56Z'
                    created_at: '2025-11-20T10:42:56Z'
                  - id: 01KAJZ5CMZFVK4FSZQOISFBZCS
                    event_type: message_new
                    payload:
                      event: new
                      type: message
                      webhook_timestamp: 1763637142
                      chat_id: 43
                      user_id: 13
                      id: 4432345
                      created_at: '2025-11-20T11:12:22.000Z'
                      parent_message_id: null
                      content: Проверьте последнюю задачу
                      entity_type: discussion
                      entity_id: 43
                      thread: null
                      url: https://app.pachca.com/chats/43?message=4432345
                    created_at: '2025-11-20T11:12:22.000Z'
                  - id: 01KAJP5CMZFPA5FSZQOCHKBOIW
                    event_type: chat_member_add
                    payload:
                      event: add
                      type: chat_member
                      webhook_timestamp: 1763637574
                      chat_id: 43
                      thread_id: null
                      user_ids:
                        - 14
                      created_at: '2025-11-20T11:19:34Z'
                    created_at: '2025-11-20T11:19:34Z'
        '400':
          description: The server could not understand the request due to invalid syntax.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '403':
          description: Access is forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '422':
          description: Client error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
        - Bots
  /webhooks/events/{id}:
    delete:
      operationId: BotOperations_deleteWebhookEvent
      description: |-
        Удаление события

        Данный метод доступен для работы только с `access_token` бота

        Метод для удаления события из истории событий бота.

        Для удаления события вам необходимо знать `access_token` бота, которому принадлежит событие, и `id` события.
      parameters:
        - name: id
          in: path
          required: true
          description: Идентификатор события
          schema:
            type: string
      responses:
        '204':
          description: 'There is no content to send for this request, but the headers may be useful. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyResponse'
        '401':
          description: Access is unauthorized.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OAuthError'
        '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
security:
  - BearerAuth: []
components:
  schemas:
    AddMembersRequest:
      type: object
      required:
        - member_ids
      properties:
        member_ids:
          type: array
          items:
            type: integer
            format: int32
          description: Массив идентификаторов пользователей, которые станут участниками
          example:
            - 186
            - 187
        silent:
          type: boolean
          description: Не создавать в чате системное сообщение о добавлении участника
          example: true
      description: Запрос на добавление участников в чат
    AddTagsRequest:
      type: object
      required:
        - group_tag_ids
      properties:
        group_tag_ids:
          type: array
          items:
            type: integer
            format: int32
          description: Массив идентификаторов тегов, которые станут участниками
          example:
            - 86
            - 18
      description: Запрос на добавление тегов в чат
    ApiError:
      type: object
      required:
        - errors
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiErrorItem'
          description: Массив ошибок
      description: Ошибка API (используется для 400, 403, 404, 409, 410, 422)
    ApiErrorItem:
      type: object
      required:
        - key
        - value
        - message
        - code
        - payload
      properties:
        key:
          type: string
          description: Ключ поля с ошибкой
          example: field.name
        value:
          type: string
          nullable: true
          description: Значение поля, которое вызвало ошибку
          example: invalid_value
        message:
          type: string
          description: Сообщение об ошибке
          example: Поле не может быть пустым
        code:
          allOf:
            - $ref: '#/components/schemas/ValidationErrorCode'
          description: Код ошибки
        payload:
          type: string
          nullable: true
          description: Дополнительные данные об ошибке
      description: Детальная информация об ошибке
    AuditEvent:
      type: object
      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:
          allOf:
            - $ref: '#/components/schemas/AuditEventKey'
          description: Ключ типа события
          example: user_chat_join
        entity_id:
          type: string
          description: Идентификатор затронутой сущности
          example: '12345678'
        entity_type:
          type: string
          description: Тип затронутой сущности
          example: Chat
        actor_id:
          type: string
          description: Идентификатор пользователя, выполнившего действие
          example: '98765'
        actor_type:
          type: string
          description: Тип актора
          example: User
        details:
          type: object
          additionalProperties: {}
          description: Дополнительные детали события
          example:
            inviter_id: '45678'
        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
      description: Событие аудита
    AuditEventKey:
      type: string
      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
        - access_token_created
        - access_token_updated
        - access_token_destroy
        - kms_encrypt
        - kms_decrypt
        - audit_events_accessed
        - dlp_violation_detected
      description: Тип аудит-события
      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: Реакция удалена
        access_token_created: Создан новый токен доступа
        access_token_updated: Токен доступа обновлен
        access_token_destroy: Токен доступа удален
        kms_encrypt: Данные зашифрованы
        kms_decrypt: Данные расшифрованы
        audit_events_accessed: Доступ к журналам аудита получен
        dlp_violation_detected: Срабатывание правила DLP-системы
    BotResponse:
      type: object
      required:
        - id
        - webhook
      properties:
        id:
          type: integer
          format: int32
          description: Идентификатор бота
          example: 1738816
        webhook:
          type: object
          properties:
            outgoing_url:
              type: string
              description: URL исходящего вебхука
              example: https://www.website.com/tasks/new
          required:
            - outgoing_url
          description: Объект параметров вебхука
      description: Ответ с данными бота
    BotUpdateRequest:
      type: object
      required:
        - bot
      properties:
        bot:
          type: object
          properties:
            webhook:
              type: object
              properties:
                outgoing_url:
                  type: string
                  description: URL исходящего вебхука
                  example: https://www.website.com/tasks/new
              required:
                - outgoing_url
              description: Объект параметров вебхука
          required:
            - webhook
          description: Собранный объект параметров редактируемого бота
      description: Запрос на обновление бота
    Button:
      type: object
      required:
        - text
      properties:
        text:
          type: string
          maxLength: 255
          description: Текст, отображаемый на кнопке
        url:
          type: string
          description: Ссылка, которая будет открыта по нажатию кнопки
        data:
          type: string
          maxLength: 255
          description: Данные, которые будут отправлены в исходном вебхуке по нажатию кнопки
      description: Кнопка
    ButtonWebhookPayload:
      type: object
      required:
        - type
        - event
        - message_id
        - trigger_id
        - data
        - user_id
        - chat_id
        - webhook_timestamp
      properties:
        type:
          type: string
          enum:
            - button
          description: Тип объекта
          example: button
          x-enum-descriptions:
            button: Для кнопки всегда button
        event:
          type: string
          enum:
            - click
          description: Тип события
          example: click
          x-enum-descriptions:
            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
      description: Структура исходящего вебхука о нажатии кнопки
    Chat:
      type: object
      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
          items:
            type: integer
            format: int32
          description: Массив идентификаторов пользователей, участников
          example:
            - 185
            - 186
            - 187
        group_tag_ids:
          type: array
          items:
            type: integer
            format: int32
          description: Массив идентификаторов тегов, участников
          example:
            - 9111
        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
      description: Чат
    ChatAvailability:
      type: string
      enum:
        - is_member
        - public
      description: Доступность чатов для пользователя
      x-enum-descriptions:
        is_member: Чаты, где пользователь является участником
        public: Все открытые чаты компании, вне зависимости от участия в них пользователя
    ChatCreateRequest:
      type: object
      required:
        - chat
      properties:
        chat:
          type: object
          properties:
            name:
              type: string
              description: Название
            member_ids:
              type: array
              items:
                type: integer
                format: int32
              description: Массив идентификаторов пользователей, которые станут участниками
            group_tag_ids:
              type: array
              items:
                type: integer
                format: int32
              description: Массив идентификаторов тегов, которые станут участниками
            channel:
              type: boolean
              description: Является каналом
              default: false
            public:
              type: boolean
              description: Открытый доступ
              default: false
          required:
            - name
          description: Собранный объект параметров создаваемого чата
      description: Запрос на создание чата
    ChatMemberRole:
      type: string
      enum:
        - admin
        - editor
        - member
      description: Роль участника чата
      x-enum-descriptions:
        admin: Админ
        editor: Редактор (доступно только для каналов)
        member: Участник или подписчик
    ChatMemberRoleFilter:
      type: string
      enum:
        - all
        - owner
        - admin
        - editor
        - member
      description: Роль участника чата (с фильтром все)
      x-enum-descriptions:
        all: Любая роль
        owner: Создатель
        admin: Админ
        editor: Редактор
        member: Участник/подписчик
    ChatMemberWebhookPayload:
      type: object
      required:
        - type
        - event
        - chat_id
        - user_ids
        - created_at
        - webhook_timestamp
      properties:
        type:
          type: string
          enum:
            - chat_member
          description: Тип объекта
          example: chat_member
          x-enum-descriptions:
            chat_member: Для участника чата всегда chat_member
        event:
          allOf:
            - $ref: '#/components/schemas/MemberEventType'
          description: Тип события
        chat_id:
          type: integer
          format: int32
          description: Идентификатор чата, в котором изменился состав участников
          example: 9012
        thread_id:
          type: integer
          format: int32
          nullable: true
          description: Идентификатор треда
          example: 5678
        user_ids:
          type: array
          items:
            type: integer
            format: int32
          description: Массив идентификаторов пользователей, с которыми произошло событие
          example:
            - 2345
            - 6789
        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
      description: Структура исходящего вебхука об участниках чата
    ChatUpdateRequest:
      type: object
      required:
        - chat
      properties:
        chat:
          type: object
          properties:
            name:
              type: string
              description: Название
            public:
              type: boolean
              description: Открытый доступ
          description: Собранный объект параметров обновляемого чата
      description: Запрос на обновление чата
    CompanyMemberWebhookPayload:
      type: object
      required:
        - type
        - event
        - user_ids
        - created_at
        - webhook_timestamp
      properties:
        type:
          type: string
          enum:
            - company_member
          description: Тип объекта
          example: company_member
          x-enum-descriptions:
            company_member: Для участника пространства всегда company_member
        event:
          allOf:
            - $ref: '#/components/schemas/UserEventType'
          description: Тип события
        user_ids:
          type: array
          items:
            type: integer
            format: int32
          description: Массив идентификаторов пользователей, с которыми произошло событие
          example:
            - 2345
            - 6789
        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
      description: Структура исходящего вебхука об участниках пространства
    CustomProperty:
      type: object
      required:
        - id
        - name
        - data_type
        - value
      properties:
        id:
          type: integer
          format: int32
          description: Идентификатор поля
          example: 1678
        name:
          type: string
          description: Название поля
          example: Город
        data_type:
          allOf:
            - $ref: '#/components/schemas/CustomPropertyDataType'
          description: Тип поля
        value:
          type: string
          description: Значение
          example: Санкт-Петербург
      description: Дополнительное поле
    CustomPropertyDataType:
      type: string
      enum:
        - string
        - number
        - date
        - link
      description: Тип данных дополнительного поля
      x-enum-descriptions:
        string: Строковое значение
        number: Числовое значение
        date: Дата
        link: Ссылка
    CustomPropertyDefinition:
      type: object
      required:
        - id
        - name
        - data_type
      properties:
        id:
          type: integer
          format: int32
          description: Идентификатор поля
          example: 1678
        name:
          type: string
          description: Название поля
          example: Город
        data_type:
          allOf:
            - $ref: '#/components/schemas/CustomPropertyDataType'
          description: Тип поля
      description: Определение дополнительного поля (без значения)
    EmptyResponse:
      type: object
      description: При безошибочном выполнении запроса тело ответа отсутствует
    ExportRequest:
      type: object
      required:
        - start_at
        - end_at
      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
          items:
            type: integer
            format: int32
          description: Массив идентификаторов чатов. Указывается, если нужно получить сообщения только некоторых чатов.
          example:
            - 1381521
        skip_chats_file:
          type: boolean
          description: Пропуск формирования файла со списком чатов (chats.json)
          example: false
      description: Запрос на экспорт сообщений
    File:
      type: object
      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:
          allOf:
            - $ref: '#/components/schemas/FileType'
          description: Тип файла
        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
          nullable: true
          description: Ширина изображения в пикселях
          example: 1920
        height:
          type: integer
          format: int32
          nullable: true
          description: Высота изображения в пикселях
          example: 1080
      description: Файл
    FileType:
      type: string
      enum:
        - file
        - image
      description: Тип файла
      x-enum-descriptions:
        file: Обычный файл
        image: Изображение
    FileUploadRequest:
      type: object
      properties:
        contentDisposition:
          type: string
          description: Параметр Content-Disposition, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)
        acl:
          type: string
          description: Параметр acl, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)
        policy:
          type: string
          description: Параметр policy, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)
        xAmzCredential:
          type: string
          description: Параметр x-amz-credential, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)
        xAmzAlgorithm:
          type: string
          description: Параметр x-amz-algorithm, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)
        xAmzDate:
          type: string
          description: Параметр x-amz-date, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)
        xAmzSignature:
          type: string
          description: Параметр x-amz-signature, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)
        key:
          type: string
          description: Параметр key, полученный в ответе на запрос [Получение подписи, ключа и других параметров](POST /uploads)
        file:
          type: string
          format: binary
          description: Файл для загрузки
      required:
        - contentDisposition
        - acl
        - policy
        - xAmzCredential
        - xAmzAlgorithm
        - xAmzDate
        - xAmzSignature
        - key
        - file
    Forwarding:
      type: object
      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: Идентификатор оригинального сообщения
        original_chat_id:
          type: integer
          format: int32
          description: Идентификатор чата, в котором находится оригинальное сообщение
        author_id:
          type: integer
          format: int32
          description: Идентификатор пользователя, создавшего оригинальное сообщение
        original_created_at:
          type: string
          format: date-time
          description: Дата и время создания оригинального сообщения (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ
        original_thread_id:
          type: integer
          format: int32
          nullable: true
          description: Идентификатор треда, в котором находится оригинальное сообщение
        original_thread_message_id:
          type: integer
          format: int32
          nullable: true
          description: Идентификатор сообщения, к которому был создан тред, в котором находится оригинальное сообщение
        original_thread_parent_chat_id:
          type: integer
          format: int32
          nullable: true
          description: Идентификатор чата сообщения, к которому был создан тред, в котором находится оригинальное сообщение
      description: Информация о пересланном сообщении
    GroupTag:
      type: object
      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
      description: Тег
    GroupTagRequest:
      type: object
      required:
        - group_tag
      properties:
        group_tag:
          type: object
          properties:
            name:
              type: string
              description: Название тега
              example: Новое название тега
          required:
            - name
      description: Запрос на создание или редактирование тега
    InviteStatus:
      type: string
      enum:
        - confirmed
        - sent
      description: Статус приглашения пользователя
      x-enum-descriptions:
        confirmed: Принято
        sent: Отправлено
    LinkPreview:
      type: object
      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
          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
          required:
            - key
            - name
            - size
          description: Изображение
      description: Данные для предпросмотра ссылки
    LinkPreviewsRequest:
      type: object
      required:
        - link_previews
      properties:
        link_previews:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/LinkPreview'
          description: '`JSON` карта предпросмотров ссылок, где каждый ключ — `URL`, который был получен в исходящем вебхуке о новом сообщении.'
      description: Запрос на разворачивание ссылок
    LinkSharedWebhookPayload:
      type: object
      required:
        - type
        - event
        - chat_id
        - message_id
        - links
        - created_at
        - webhook_timestamp
      properties:
        type:
          type: string
          enum:
            - message
          description: Тип объекта
          example: message
          x-enum-descriptions:
            message: Для разворачивания ссылок всегда message
        event:
          type: string
          enum:
            - link_shared
          description: Тип события
          example: link_shared
          x-enum-descriptions:
            link_shared: Обнаружена ссылка на отслеживаемый домен
        chat_id:
          type: integer
          format: int32
          description: Идентификатор чата, в котором обнаружена ссылка
          example: 23438
        message_id:
          type: integer
          format: int32
          description: Идентификатор сообщения, содержащего ссылку
          example: 268092
        links:
          type: array
          items:
            $ref: '#/components/schemas/WebhookLink'
          description: Массив обнаруженных ссылок на отслеживаемые домены
        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
      description: Структура исходящего вебхука о разворачивании ссылок
    MemberEventType:
      type: string
      enum:
        - add
        - remove
      description: Тип события webhook для участников
      x-enum-descriptions:
        add: Добавление
        remove: Удаление
    Message:
      type: object
      required:
        - id
        - entity_type
        - entity_id
        - chat_id
        - content
        - user_id
        - created_at
        - url
        - files
        - buttons
        - thread
        - forwarding
        - parent_message_id
        - display_avatar_url
        - display_name
      properties:
        id:
          type: integer
          format: int32
          description: Идентификатор сообщения
          example: 194275
        entity_type:
          allOf:
            - $ref: '#/components/schemas/MessageEntityType'
          description: Тип сущности, к которой относится сообщение
        entity_id:
          type: integer
          format: int32
          description: Идентификатор сущности, к которой относится сообщение (беседы/канала, треда или пользователя)
          example: 334
        chat_id:
          type: integer
          format: int32
          description: Идентификатор чата, в котором находится сообщение
          example: 334
        content:
          type: string
          description: Текст сообщения
          example: Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)
        user_id:
          type: integer
          format: int32
          description: Идентификатор пользователя, создавшего сообщение
          example: 185
        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
          items:
            $ref: '#/components/schemas/File'
          description: Прикрепленные файлы
        buttons:
          type: array
          items:
            type: array
            items:
              $ref: '#/components/schemas/Button'
          description: Массив строк, каждая из которых представлена массивом кнопок
        thread:
          type: object
          allOf:
            - $ref: '#/components/schemas/Thread'
          nullable: true
          description: Тред сообщения
        forwarding:
          type: object
          allOf:
            - $ref: '#/components/schemas/Forwarding'
          nullable: true
          description: Информация о пересланном сообщении
        parent_message_id:
          type: integer
          format: int32
          nullable: true
          description: Идентификатор сообщения, к которому написан ответ
        display_avatar_url:
          type: string
          nullable: true
          description: Ссылка на аватарку отправителя сообщения
        display_name:
          type: string
          nullable: true
          description: Полное имя отправителя сообщения
      description: Сообщение
    MessageCreateRequest:
      type: object
      required:
        - message
      properties:
        message:
          type: object
          properties:
            entity_type:
              allOf:
                - $ref: '#/components/schemas/MessageEntityType'
              description: Тип сущности
              default: discussion
            entity_id:
              type: integer
              format: int32
              description: Идентификатор сущности
              example: 198
            content:
              type: string
              description: Текст сообщения
              example: Вчера мы продали 756 футболок (что на 10% больше, чем в прошлое воскресенье)
            files:
              type: array
              items:
                type: object
                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:
                    type: string
                    enum:
                      - file
                      - image
                    description: Тип файла
                    example: image
                    x-enum-descriptions:
                      file: Файл
                      image: Изображение
                  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
                required:
                  - key
                  - name
                  - file_type
                  - size
              description: Прикрепляемые файлы
            buttons:
              type: array
              items:
                type: array
                items:
                  $ref: '#/components/schemas/Button'
              description: Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке.
            parent_message_id:
              type: integer
              format: int32
              description: Идентификатор сообщения. Указывается в случае, если вы отправляете ответ на другое сообщение.
              example: 194270
            display_avatar_url:
              type: string
              maxLength: 255
              description: Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.
              example: https://example.com/avatar.png
            display_name:
              type: string
              maxLength: 255
              description: Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.
              example: Бот Поддержки
            skip_invite_mentions:
              type: boolean
              description: Пропуск добавления упоминаемых пользователей в тред. Работает только при отправке сообщения в тред.
              example: false
              default: false
            link_preview:
              type: boolean
              description: Отображение предпросмотра первой найденной ссылки в тексте сообщения
              example: false
              default: false
          required:
            - entity_id
            - content
          description: Собранный объект параметров создаваемого сообщения
      description: Запрос на создание сообщения
    MessageEntityType:
      type: string
      enum:
        - discussion
        - thread
        - user
      description: Тип сущности для сообщений
      x-enum-descriptions:
        discussion: Беседа или канал
        thread: Тред
        user: Пользователь
    MessageUpdateRequest:
      type: object
      required:
        - message
      properties:
        message:
          type: object
          properties:
            content:
              type: string
              description: Текст сообщения
              example: 'Вот попробуйте написать правильно это с первого раза: Будущий, Полощи, Прийти, Грейпфрут, Мозаика, Бюллетень, Дуршлаг, Винегрет.'
            files:
              type: array
              items:
                type: object
                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:
                    type: string
                    description: 'Тип файла: файл (file), изображение (image)'
                    example: image
                  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
                required:
                  - key
                  - name
              description: Прикрепляемые файлы
            buttons:
              type: array
              items:
                type: array
                items:
                  $ref: '#/components/schemas/Button'
              description: Массив строк, каждая из которых представлена массивом кнопок. Максимум 100 кнопок у сообщения, до 8 кнопок в строке. Для удаления кнопок пришлите пустой массив.
            display_avatar_url:
              type: string
              description: Ссылка на специальную аватарку отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.
              example: https://example.com/avatar.png
            display_name:
              type: string
              description: Полное специальное имя отправителя для этого сообщения. Использование этого поля возможно только с access_token бота.
              example: Бот Поддержки
          description: Собранный объект параметров редактируемого сообщения
      description: Запрос на редактирование сообщения
    MessageWebhookPayload:
      type: object
      required:
        - type
        - id
        - event
        - entity_type
        - entity_id
        - content
        - user_id
        - created_at
        - url
        - chat_id
        - webhook_timestamp
      properties:
        type:
          type: string
          enum:
            - message
          description: Тип объекта
          example: message
          x-enum-descriptions:
            message: Для сообщений всегда message
        id:
          type: integer
          format: int32
          description: Идентификатор сообщения
          example: 1245817
        event:
          allOf:
            - $ref: '#/components/schemas/WebhookEventType'
          description: Тип события
        entity_type:
          allOf:
            - $ref: '#/components/schemas/MessageEntityType'
          description: Тип сущности, к которой относится сообщение
        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
          nullable: true
          description: Идентификатор сообщения, к которому написан ответ
          example: 3456
        thread:
          type: object
          allOf:
            - $ref: '#/components/schemas/WebhookMessageThread'
          nullable: true
          description: Объект с параметрами треда
        webhook_timestamp:
          type: integer
          format: int32
          description: Дата и время отправки вебхука (UTC+0) в формате UNIX
          example: 1747574400
      description: Структура исходящего вебхука о сообщении
    OAuthError:
      type: object
      required:
        - error
        - error_description
      properties:
        error:
          type: string
          description: Код ошибки
          example: invalid_token
        error_description:
          type: string
          description: Описание ошибки
          example: Access token is missing
      description: Ошибка OAuth авторизации (используется для 401 и 403)
    OpenViewRequest:
      type: object
      required:
        - type
        - trigger_id
        - view
      properties:
        type:
          type: string
          enum:
            - modal
          description: Способ открытия представления
          x-enum-descriptions:
            modal: Модальное окно
        trigger_id:
          type: string
          description: Уникальный идентификатор события (полученный, например, в исходящем вебхуке о нажатии кнопки)
        private_metadata:
          type: string
          maxLength: 3000
          description: Необязательная строка, которая будет отправлена в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для передачи в формате `JSON` какой то дополнительной информации вместе с заполненной пользователем формой.
        callback_id:
          type: string
          maxLength: 255
          description: Необязательный идентификатор для распознавания этого представления, который будет отправлен в ваше приложение при отправке пользователем заполненной формы. Используйте это поле, например, для понимания, какую форму должен был заполнить пользователь.
        view:
          type: object
          properties:
            title:
              type: string
              maxLength: 24
              description: Заголовок представления
            close_text:
              type: string
              maxLength: 24
              description: Текст кнопки закрытия представления
              default: Отменить
            submit_text:
              type: string
              maxLength: 24
              description: Текст кнопки отправки формы
              default: Отправить
            blocks:
              type: array
              items:
                $ref: '#/components/schemas/ViewBlockUnion'
              maxItems: 100
              description: Массив блоков представления
          required:
            - title
            - blocks
          description: Собранный объект представления
      description: Запрос на открытие представления
    PaginationMeta:
      type: object
      properties:
        paginate:
          type: object
          properties:
            next_page:
              type: string
              description: Курсор пагинации следующей страницы
              example: eyJxZCO2MiwiZGlyIjomSNYjIn3
          description: Вспомогательная информация
      description: Метаданные пагинации
    Reaction:
      type: object
      required:
        - user_id
        - created_at
        - code
      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:'
      description: Реакция на сообщение
    ReactionEventType:
      type: string
      enum:
        - new
        - delete
      description: Тип события webhook для реакций
      x-enum-descriptions:
        new: Создание
        delete: Удаление
    ReactionRequest:
      type: object
      required:
        - code
      properties:
        code:
          type: string
          description: Emoji символ реакции
          example: 👍
        name:
          type: string
          description: Текстовое имя эмодзи (используется для кастомных эмодзи)
          example: ':+1:'
      description: Запрос на добавление реакции
    ReactionWebhookPayload:
      type: object
      required:
        - type
        - event
        - message_id
        - code
        - name
        - user_id
        - created_at
        - webhook_timestamp
      properties:
        type:
          type: string
          enum:
            - reaction
          description: Тип объекта
          example: reaction
          x-enum-descriptions:
            reaction: Для реакций всегда reaction
        event:
          allOf:
            - $ref: '#/components/schemas/ReactionEventType'
          description: Тип события
        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
      description: Структура исходящего вебхука о реакции
    SearchEntityType:
      type: string
      enum:
        - User
        - Task
      description: Тип сущности для поиска
      x-enum-descriptions:
        User: Пользователь
        Task: Задача
    SortOrder:
      type: string
      enum:
        - asc
        - desc
      description: Порядок сортировки
      x-enum-descriptions:
        asc: По возрастанию
        desc: По убыванию
    StatusUpdateRequest:
      type: object
      required:
        - status
      properties:
        status:
          type: object
          properties:
            emoji:
              type: string
              description: Emoji символ статуса
            title:
              type: string
              description: Текст статуса
            expires_at:
              type: string
              format: date-time
              description: Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ
          required:
            - emoji
            - title
      description: Запрос на установку статуса
    TagNamesFilter:
      type: array
      items:
        type: string
      description: Массив названий тегов
      example:
        - Design
        - iOS
    Task:
      type: object
      required:
        - id
        - kind
        - content
        - due_at
        - priority
        - user_id
        - status
        - created_at
        - performer_ids
        - all_day
        - custom_properties
      properties:
        id:
          type: integer
          format: int32
          description: Идентификатор напоминания
          example: 22283
        kind:
          allOf:
            - $ref: '#/components/schemas/TaskKind'
          description: Тип
        content:
          type: string
          description: Описание
          example: Забрать со склада 21 заказ
        due_at:
          type: string
          format: date-time
          nullable: true
          description: Срок выполнения напоминания (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ
          example: '2020-06-05T09:00:00.000Z'
        priority:
          type: integer
          format: int32
          description: Приоритет
          example: 2
        user_id:
          type: integer
          format: int32
          description: Идентификатор пользователя-создателя напоминания
          example: 12
        status:
          type: string
          enum:
            - done
            - undone
          description: Статус напоминания
          example: undone
          x-enum-descriptions:
            done: Выполнено
            undone: Активно
        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
          items:
            type: integer
            format: int32
          description: Массив идентификаторов пользователей, привязанных к напоминанию как «ответственные»
          example:
            - 12
        all_day:
          type: boolean
          description: Напоминание на весь день (без указания времени)
          example: false
        custom_properties:
          type: array
          items:
            $ref: '#/components/schemas/CustomProperty'
          description: Дополнительные поля напоминания
      description: Напоминание
    TaskCreateRequest:
      type: object
      required:
        - task
      properties:
        task:
          type: object
          properties:
            kind:
              allOf:
                - $ref: '#/components/schemas/TaskKind'
              description: Тип
            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
              default: 1
            performer_ids:
              type: array
              items:
                type: integer
                format: int32
              description: Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные» (по умолчанию ответственным назначается вы)
            all_day:
              type: boolean
              description: Напоминание на весь день (без указания времени)
            custom_properties:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: integer
                    format: int32
                    description: Идентификатор поля
                    example: 78
                  value:
                    type: string
                    description: Устанавливаемое значение
                    example: Синий склад
                required:
                  - id
                  - value
              description: Задаваемые дополнительные поля
          required:
            - kind
          description: Собранный объект параметров создаваемого напоминания
      description: Запрос на создание напоминания
    TaskKind:
      type: string
      enum:
        - call
        - meeting
        - reminder
        - event
        - email
      description: Тип задачи
      x-enum-descriptions:
        call: Позвонить контакту
        meeting: Встреча
        reminder: Простое напоминание
        event: Событие
        email: Написать письмо
    TaskUpdateRequest:
      type: object
      required:
        - task
      properties:
        task:
          type: object
          properties:
            kind:
              allOf:
                - $ref: '#/components/schemas/TaskKind'
              description: Тип
            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
              items:
                type: integer
                format: int32
              description: Массив идентификаторов пользователей, привязываемых к напоминанию как «ответственные»
            status:
              type: string
              enum:
                - done
                - undone
              description: Статус
              example: done
              x-enum-descriptions:
                done: Выполнено
                undone: Не выполнено
            all_day:
              type: boolean
              description: Напоминание на весь день (без указания времени)
            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
              items:
                type: object
                properties:
                  id:
                    type: integer
                    format: int32
                    description: Идентификатор поля
                    example: 78
                  value:
                    type: string
                    description: Устанавливаемое значение
                    example: Синий склад
                required:
                  - id
                  - value
              description: Задаваемые дополнительные поля
          description: Собранный объект параметров обновляемого напоминания
      description: Запрос на обновление напоминания
    Thread:
      type: object
      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'
      description: Тред
    UpdateMemberRoleRequest:
      type: object
      required:
        - role
      properties:
        role:
          allOf:
            - $ref: '#/components/schemas/ChatMemberRole'
          description: Роль
      description: Запрос на изменение роли участника
    UploadParams:
      type: object
      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
      description: Параметры для загрузки файла
    User:
      type: object
      required:
        - id
        - first_name
        - last_name
        - nickname
        - email
        - phone_number
        - department
        - title
        - role
        - suspended
        - invite_status
        - 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: Петров
        nickname:
          type: string
          description: Имя пользователя
          example: ''
        email:
          type: string
          description: Электронная почта
          example: olegp@example.com
        phone_number:
          type: string
          description: Телефон
          example: ''
        department:
          type: string
          description: Департамент
          example: Продукт
        title:
          type: string
          description: Должность
          example: CIO
        role:
          allOf:
            - $ref: '#/components/schemas/UserRole'
          description: Уровень доступа
        suspended:
          type: boolean
          description: Деактивация пользователя
          example: false
        invite_status:
          allOf:
            - $ref: '#/components/schemas/InviteStatus'
          description: Статус приглашения
        list_tags:
          type: array
          items:
            type: string
          description: Массив тегов, привязанных к сотруднику
          example:
            - Product
            - Design
        custom_properties:
          type: array
          items:
            $ref: '#/components/schemas/CustomProperty'
          description: Дополнительные поля сотрудника
        user_status:
          type: object
          allOf:
            - $ref: '#/components/schemas/UserStatus'
          nullable: true
          description: Статус
        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'
        time_zone:
          type: string
          description: Часовой пояс пользователя
          example: Europe/Moscow
        image_url:
          type: string
          nullable: true
          description: Ссылка на скачивание аватарки пользователя
      description: Сотрудник
    UserCreateRequest:
      type: object
      required:
        - user
      properties:
        user:
          type: object
          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: Телефон
            nickname:
              type: string
              description: Имя пользователя
            department:
              type: string
              description: Департамент
              example: Продукт
            title:
              type: string
              description: Должность
            role:
              allOf:
                - $ref: '#/components/schemas/UserRole'
              description: Уровень доступа
            suspended:
              type: boolean
              description: Деактивация пользователя
              example: false
            list_tags:
              type: array
              items:
                type: string
              description: Массив тегов, привязываемых к сотруднику
              example:
                - Product
                - Design
            custom_properties:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: integer
                    format: int32
                    description: Идентификатор поля
                    example: 1678
                  value:
                    type: string
                    description: Устанавливаемое значение
                    example: Санкт-Петербург
                required:
                  - id
                  - value
              description: Задаваемые дополнительные поля
          required:
            - email
        skip_email_notify:
          type: boolean
          description: Пропуск этапа отправки приглашения сотруднику. Сотруднику не будет отправлено письмо на электронную почту с приглашением создать аккаунт. Полезно при предварительном создании аккаунтов перед входом через SSO.
          example: true
      description: Запрос на создание сотрудника
    UserEventType:
      type: string
      enum:
        - invite
        - confirm
        - update
        - suspend
        - activate
        - delete
      description: Тип события webhook для пользователей
      x-enum-descriptions:
        invite: Приглашение
        confirm: Подтверждение
        update: Обновление
        suspend: Приостановка
        activate: Активация
        delete: Удаление
    UserRole:
      type: string
      enum:
        - admin
        - user
        - multi_guest
      description: Роль пользователя в системе
      x-enum-descriptions:
        admin: Администратор
        user: Сотрудник
        multi_guest: Мульти-гость
    UserStatus:
      type: object
      required:
        - emoji
        - title
        - expires_at
      properties:
        emoji:
          type: string
          description: Emoji символ статуса
          example: 🎮
        title:
          type: string
          description: Текст статуса
          example: Очень занят
        expires_at:
          type: string
          format: date-time
          nullable: true
          description: Срок жизни статуса (ISO-8601, UTC+0) в формате YYYY-MM-DDThh:mm:ss.sssZ
          example: '2024-04-08T10:00:00.000Z'
      description: Статус пользователя
    UserUpdateRequest:
      type: object
      required:
        - user
      properties:
        user:
          type: object
          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:
              type: string
              enum:
                - admin
                - user
                - multi_guest
              description: Уровень доступа
              example: user
              x-enum-descriptions:
                admin: Администратор
                user: Сотрудник
                multi_guest: Мульти-гость
            suspended:
              type: boolean
              description: Деактивация пользователя
              example: false
            list_tags:
              type: array
              items:
                type: string
              description: Массив тегов, привязываемых к сотруднику
              example:
                - Product
            custom_properties:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: integer
                    format: int32
                    description: Идентификатор поля
                    example: 1678
                  value:
                    type: string
                    description: Устанавливаемое значение
                    example: Санкт-Петербург
                required:
                  - id
                  - value
              description: Задаваемые дополнительные поля
          description: Собранный объект параметров редактируемого сотрудника
      description: Запрос на редактирование сотрудника
    ValidationErrorCode:
      type: string
      enum:
        - blank
        - too_long
        - invalid
        - inclusion
        - exclusion
        - taken
        - wrong_emoji
        - not_found
        - already_exists
        - personal_chat
        - displayed_error
        - not_authorized
        - invalid_date_range
        - invalid_webhook_url
        - rate_limit
        - licenses_limit
        - user_limit
        - unique_limit
        - general_limit
        - unhandled
        - trigger_not_found
        - trigger_expired
        - required
        - in
        - not_applicable
        - self_update
        - owner_protected
        - already_assigned
        - forbidden
        - permission_denied
        - access_denied
        - wrong_params
        - payment_required
        - min_length
        - max_length
      description: Коды ошибок валидации
      x-enum-descriptions:
        blank: Обязательное поле (не может быть пустым)
        too_long: Слишком длинное значение (пояснения вы получите в поле message)
        invalid: Поле не соответствует правилам (пояснения вы получите в поле message)
        inclusion: Поле имеет непредусмотренное значение
        exclusion: Поле имеет недопустимое значение
        taken: Название для этого поля уже существует
        wrong_emoji: Emoji статуса не может содержать значения отличные от Emoji символа
        not_found: Объект не найден
        already_exists: Объект уже существует (пояснения вы получите в поле message)
        personal_chat: Ошибка личного чата (пояснения вы получите в поле message)
        displayed_error: Отображаемая ошибка (пояснения вы получите в поле message)
        not_authorized: Действие запрещено
        invalid_date_range: Выбран слишком большой диапазон дат
        invalid_webhook_url: Некорректный URL вебхука
        rate_limit: Достигнут лимит запросов
        licenses_limit: Превышен лимит активных сотрудников (пояснения вы получите в поле message)
        user_limit: Превышен лимит количества реакций, которые может добавить пользователь (20 уникальных реакций)
        unique_limit: Превышен лимит количества уникальных реакций, которые можно добавить на сообщение (30 уникальных реакций)
        general_limit: Превышен лимит количества реакций, которые можно добавить на сообщение (1000 реакций)
        unhandled: Ошибка выполнения запроса (пояснения вы получите в поле message)
        trigger_not_found: Не удалось найти идентификатор события
        trigger_expired: Время жизни идентификатора события истекло
        required: Обязательный параметр не передан
        in: Недопустимое значение (не входит в список допустимых)
        not_applicable: Значение неприменимо в данном контексте (пояснения вы получите в поле message)
        self_update: Нельзя изменить свои собственные данные
        owner_protected: Нельзя изменить данные владельца
        already_assigned: Значение уже назначено
        forbidden: Недостаточно прав для выполнения действия (пояснения вы получите в поле message)
        permission_denied: Доступ запрещён (недостаточно прав)
        access_denied: Доступ запрещён
        wrong_params: Некорректные параметры запроса (пояснения вы получите в поле message)
        payment_required: Требуется оплата
        min_length: Значение слишком короткое (пояснения вы получите в поле message)
        max_length: Значение слишком длинное (пояснения вы получите в поле message)
    ViewBlock:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: Тип блока
        text:
          type: string
          description: Текст блока
        name:
          type: string
          description: Имя поля
        label:
          type: string
          description: Метка поля
        initial_date:
          type: string
          format: date-time
          description: Начальная дата
      description: Блок представления для форм (базовая модель, используйте конкретные типы блоков)
    ViewBlockCheckbox:
      type: object
      required:
        - type
        - name
        - label
      properties:
        type:
          type: string
          enum:
            - checkbox
          description: Тип блока
          example: checkbox
          x-enum-descriptions:
            checkbox: Для чекбоксов всегда checkbox
        name:
          type: string
          maxLength: 255
          description: Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора
          example: newsletters
        label:
          type: string
          maxLength: 150
          description: Подпись к группе чекбоксов
          example: Рассылки
        options:
          type: array
          items:
            $ref: '#/components/schemas/ViewBlockCheckboxOption'
          maxItems: 10
          description: Массив чекбоксов
        required:
          type: boolean
          description: Обязательность
        hint:
          type: string
          maxLength: 2000
          description: Подсказка, которая отображается под группой чекбоксов серым цветом
      description: Блок checkbox — чекбоксы
    ViewBlockCheckboxOption:
      type: object
      required:
        - text
        - value
      properties:
        text:
          type: string
          maxLength: 75
          description: Отображаемый текст
          example: Ничего
        value:
          type: string
          maxLength: 150
          description: Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта
          example: nothing
        description:
          type: string
          maxLength: 75
          description: Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом
          example: Каждый день бот будет присылать список новых задач в вашей команде
        checked:
          type: boolean
          description: Изначально выбранный пункт
          example: true
    ViewBlockDate:
      type: object
      required:
        - type
        - name
        - label
      properties:
        type:
          type: string
          enum:
            - date
          description: Тип блока
          example: date
          x-enum-descriptions:
            date: Для выбора даты всегда date
        name:
          type: string
          maxLength: 255
          description: Название, которое будет передано в ваше приложение как ключ указанного пользователем значения
          example: date_start
        label:
          type: string
          maxLength: 150
          description: Подпись к полю
          example: Дата начала отпуска
        initial_date:
          type: string
          format: date
          description: Начальное значение в поле в формате YYYY-MM-DD
          example: '2025-07-01'
        required:
          type: boolean
          description: Обязательность
          example: true
        hint:
          type: string
          maxLength: 2000
          description: Подсказка, которая отображается под полем серым цветом
      description: Блок date — выбор даты
    ViewBlockDivider:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - divider
          description: Тип блока
          example: divider
          x-enum-descriptions:
            divider: Для разделителя всегда divider
      description: Блок divider — разделитель
    ViewBlockFileInput:
      type: object
      required:
        - type
        - name
        - label
      properties:
        type:
          type: string
          enum:
            - file_input
          description: Тип блока
          example: file_input
          x-enum-descriptions:
            file_input: Для загрузки файлов всегда file_input
        name:
          type: string
          maxLength: 255
          description: Название, которое будет передано в ваше приложение как ключ указанного пользователем значения
          example: request_doc
        label:
          type: string
          maxLength: 150
          description: Подпись к полю
          example: Заявление
        filetypes:
          type: array
          items:
            type: string
          description: Массив допустимых расширений файлов, указанные в виде строк (например, ["png","jpg","gif"]). Если это поле не указано, все расширения файлов будут приняты.
          example:
            - pdf
            - jpg
            - png
        max_files:
          type: integer
          format: int32
          minimum: 1
          maximum: 10
          description: Максимальное количество файлов, которое может загрузить пользователь в это поле.
          example: 1
          default: 10
        required:
          type: boolean
          description: Обязательность
          example: true
        hint:
          type: string
          maxLength: 2000
          description: Подсказка, которая отображается под полем серым цветом
          example: Загрузите заполненное заявление с электронной подписью (в формате pdf, jpg или png)
      description: Блок file_input — загрузка файлов
    ViewBlockHeader:
      type: object
      required:
        - type
        - text
      properties:
        type:
          type: string
          enum:
            - header
          description: Тип блока
          example: header
          x-enum-descriptions:
            header: Для заголовков всегда header
        text:
          type: string
          maxLength: 150
          description: Текст заголовка
          example: Основная информация
      description: Блок header — заголовок
    ViewBlockInput:
      type: object
      required:
        - type
        - name
        - label
      properties:
        type:
          type: string
          enum:
            - input
          description: Тип блока
          example: input
          x-enum-descriptions:
            input: Для текстового поля всегда input
        name:
          type: string
          maxLength: 255
          description: Название, которое будет передано в ваше приложение как ключ указанного пользователем значения
          example: info
        label:
          type: string
          maxLength: 150
          description: Подпись к полю
          example: Описание отпуска
        placeholder:
          type: string
          maxLength: 150
          description: Подсказка внутри поля ввода, пока оно пустое
          example: Куда собираетесь и что будете делать
        multiline:
          type: boolean
          description: Многострочное поле
          example: true
        initial_value:
          type: string
          maxLength: 3000
          description: Начальное значение в поле
        min_length:
          type: integer
          format: int32
          minimum: 0
          maximum: 3000
          description: Минимальная длина текста, который должен написать пользователь. Если пользователь напишет меньше, он получит ошибку.
        max_length:
          type: integer
          format: int32
          minimum: 1
          maximum: 3000
          description: Максимальная длина текста, который должен написать пользователь. Если пользователь напишет больше, он получит ошибку.
        required:
          type: boolean
          description: Обязательность
          example: true
        hint:
          type: string
          maxLength: 2000
          description: Подсказка, которая отображается под полем серым цветом
          example: Возможно вам подскаджут, какие места лучше посетить
      description: Блок input — текстовое поле ввода
    ViewBlockMarkdown:
      type: object
      required:
        - type
        - text
      properties:
        type:
          type: string
          enum:
            - markdown
          description: Тип блока
          example: markdown
          x-enum-descriptions:
            markdown: Для форматированного текста всегда markdown
        text:
          type: string
          maxLength: 12000
          description: Текст
          example: Информацию о доступных вам днях отпуска вы можете прочитать по [ссылке](https://www.website.com/timeoff)
      description: Блок markdown — форматированный текст
    ViewBlockPlainText:
      type: object
      required:
        - type
        - text
      properties:
        type:
          type: string
          enum:
            - plain_text
          description: Тип блока
          example: plain_text
          x-enum-descriptions:
            plain_text: Для обычного текста всегда plain_text
        text:
          type: string
          maxLength: 12000
          description: Текст
          example: Заполните форму. После отправки формы в общий чат будет отправлено текстовое уведомление, а ваш отпуск будет сохранен в базе.
      description: Блок plain_text — обычный текст
    ViewBlockRadio:
      type: object
      required:
        - type
        - name
        - label
      properties:
        type:
          type: string
          enum:
            - radio
          description: Тип блока
          example: radio
          x-enum-descriptions:
            radio: Для радиокнопок всегда radio
        name:
          type: string
          maxLength: 255
          description: Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора
          example: accessibility
        label:
          type: string
          maxLength: 150
          description: Подпись к группе радиокнопок
          example: Доступность
        options:
          type: array
          items:
            $ref: '#/components/schemas/ViewBlockSelectableOption'
          maxItems: 10
          description: Массив радиокнопок
        required:
          type: boolean
          description: Обязательность
          example: true
        hint:
          type: string
          maxLength: 2000
          description: Подсказка, которая отображается под группой радиокнопок серым цветом
          example: Если вы не планируете выходить на связь, то выберите вариант Ничего
      description: Блок radio — радиокнопки
    ViewBlockSelect:
      type: object
      required:
        - type
        - name
        - label
      properties:
        type:
          type: string
          enum:
            - select
          description: Тип блока
          example: select
          x-enum-descriptions:
            select: Для выпадающего списка всегда select
        name:
          type: string
          maxLength: 255
          description: Название, которое будет передано в ваше приложение как ключ указанного пользователем выбора
          example: team
        label:
          type: string
          maxLength: 150
          description: Подпись к выпадающему списку
          example: Выберите команду
        options:
          type: array
          items:
            $ref: '#/components/schemas/ViewBlockSelectableOption'
          maxItems: 100
          description: Массив доступных пунктов в выпадающем списке
        required:
          type: boolean
          description: Обязательность
        hint:
          type: string
          maxLength: 2000
          description: Подсказка, которая отображается под выпадающим списком серым цветом
      description: Блок select — выпадающий список
    ViewBlockSelectableOption:
      type: object
      required:
        - text
        - value
      properties:
        text:
          type: string
          maxLength: 75
          description: Отображаемый текст
          example: Ничего
        value:
          type: string
          maxLength: 150
          description: Уникальное строковое значение, которое будет передано в ваше приложение при выборе этого пункта
          example: nothing
        description:
          type: string
          maxLength: 75
          description: Пояснение, которое будет указано серым цветом в этом пункте под отображаемым текстом
          example: Каждый день бот будет присылать список новых задач в вашей команде
        selected:
          type: boolean
          description: Изначально выбранный пункт. Только один пункт может быть выбран.
          example: true
      description: Опция для блоков select, radio и checkbox
    ViewBlockTime:
      type: object
      required:
        - type
        - name
        - label
      properties:
        type:
          type: string
          enum:
            - time
          description: Тип блока
          example: time
          x-enum-descriptions:
            time: Для выбора времени всегда time
        name:
          type: string
          maxLength: 255
          description: Название, которое будет передано в ваше приложение как ключ указанного пользователем значения
          example: newsletter_time
        label:
          type: string
          maxLength: 150
          description: Подпись к полю
          example: Время рассылки
        initial_time:
          type: string
          format: time
          description: Начальное значение в поле в формате HH:mm
          example: '11:00'
        required:
          type: boolean
          description: Обязательность
        hint:
          type: string
          maxLength: 2000
          description: Подсказка, которая отображается под полем серым цветом
          example: Укажите, в какое время присылать выбранные рассылки
      description: Блок time — выбор времени
    ViewBlockUnion:
      anyOf:
        - $ref: '#/components/schemas/ViewBlockHeader'
        - $ref: '#/components/schemas/ViewBlockPlainText'
        - $ref: '#/components/schemas/ViewBlockMarkdown'
        - $ref: '#/components/schemas/ViewBlockDivider'
        - $ref: '#/components/schemas/ViewBlockInput'
        - $ref: '#/components/schemas/ViewBlockSelect'
        - $ref: '#/components/schemas/ViewBlockRadio'
        - $ref: '#/components/schemas/ViewBlockCheckbox'
        - $ref: '#/components/schemas/ViewBlockDate'
        - $ref: '#/components/schemas/ViewBlockTime'
        - $ref: '#/components/schemas/ViewBlockFileInput'
      description: Union-тип для всех возможных блоков представления
    WebhookEvent:
      type: object
      required:
        - id
        - event_type
        - payload
        - created_at
      properties:
        id:
          type: string
          description: Идентификатор события
          example: a1b2c3d4-5e6f-7g8h-9i10-j11k12l13m14
        event_type:
          type: string
          description: Тип события
          example: message_new
        payload:
          allOf:
            - $ref: '#/components/schemas/WebhookPayloadUnion'
          description: Объект вебхука
        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'
      description: Событие исходящего вебхука
    WebhookEventType:
      type: string
      enum:
        - new
        - update
        - delete
      description: Тип события webhook
      x-enum-descriptions:
        new: Создание
        update: Обновление
        delete: Удаление
    WebhookLink:
      type: object
      required:
        - url
        - domain
      properties:
        url:
          type: string
          description: URL ссылки
          example: https://example.com/page1
        domain:
          type: string
          description: Домен ссылки
          example: example.com
      description: Объект ссылки в вебхуке разворачивания ссылок
    WebhookMessageThread:
      type: object
      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
      description: Объект треда в вебхуке сообщения
    WebhookPayloadUnion:
      anyOf:
        - $ref: '#/components/schemas/MessageWebhookPayload'
        - $ref: '#/components/schemas/ReactionWebhookPayload'
        - $ref: '#/components/schemas/ButtonWebhookPayload'
        - $ref: '#/components/schemas/ChatMemberWebhookPayload'
        - $ref: '#/components/schemas/CompanyMemberWebhookPayload'
        - $ref: '#/components/schemas/LinkSharedWebhookPayload'
      description: Объединение всех типов payload вебхуков
  securitySchemes:
    BearerAuth:
      type: http
      scheme: Bearer
servers:
  - url: https://api.pachca.com/api/shared/v1
    description: Production server
    variables: {}
