---
metadata:
  - name: generator
    content: Diplodoc Platform v5.57.3
  - property: og:type
    content: article
  - property: article:section
    content: Справочник API
  - property: og:title
    content: Выдать права доступа к очереди
  - property: article:tag
    content: Техническая инструкция
alternate:
  - https://yandex.ru/support/tracker/en/api/queues/manage-access.md
  - https://yandex.ru/support/tracker/ru/api/queues/manage-access.md
  - href: ru/api/queues/manage-access.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/support/tracker/ru/llms.txt


# Выдать права доступа к очереди

Запрос позволяет настроить [доступы к очереди](https://yandex.ru/support/tracker/manager/queue-access.html).

<div class="request_example method_patch yfm-clipboard">
    <p>PATCH</p>
    <pre><code>https://api.tracker.yandex.net/v3/queues/&lt;id_очереди>/permissions</code></pre>
    <button class="yfm-clipboard-button"><svg width="16" height="16" viewBox="0 0 24 24" class="yfm-clipboard-icon" data-animation="15">
    <path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path>
    <path stroke="currentColor" fill="transparent" strokewidth="1.5" d="M9.5 13l3 3l5 -5" visibility="hidden">
        <animate id="visibileAnimation-15" attributeName="visibility" from="hidden" to="visible" dur="0.2s" fill="freeze" begin=""></animate>
        <animate id="hideAnimation-15" attributeName="visibility" from="visible" to="hidden" dur="1s" begin="visibileAnimation-15.end+1" fill="freeze"></animate>
    </path>
</svg>
</button>
</div>

<!-- source: ru/api/_assets/style/methods.md -->

<!-- endsource: ru/api/_assets/style/methods.md -->

## Формат запроса {#query}

Перед выполнением запроса [получите доступ к API](https://yandex.ru/support/tracker/ru/api/access.md).

Чтобы настроить доступы к очереди, используйте HTTP-запрос с методом `PATCH`. В теле запроса укажите параметры в формате JSON.

```json translate=no
PATCH /v3/queues/<id_очереди>/permissions
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth-токен>
Content-Type: application/json
X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации>

{
   "create": {
      "groups": [3, 5]
   },
   "write": {
      "users": {
         "remove": ["username1", "username2"]
      },
      "groups": {
         "add":[4]
       },
      "roles": {
         "add":["author", "assignee"]
      }
   },
   "read": {
      "groups": {
         "add":[4]
       },
      "roles": {
         "add":["follower"]
      }
   },
   "grant": {
      "users": {
         "remove": ["username3",  "username4"]
      }
   }

}
```

<!-- source: ru/api/_includes/headings.md -->
{% cut "Заголовки" %}

* `Host`: адрес узла, предоставляющего API.

* <!-- source: ru/api/_includes/authorization.md -->
  `Authorization`: токен для авторизации в одном из форматов:

    - `OAuth <OAuth-токен>` при авторизации по протоколу OAuth 2.0. [Читать подробнее](https://yandex.ru/support/tracker/ru/api/access.md#about_OAuth)

    - `Bearer <IAM-токен>` при авторизации с помощью IAM-токена — если к Трекеру привязана организация Yandex Identity Hub. [Читать подробнее](https://yandex.ru/support/tracker/ru/api/access.md#iam-token)
  <!-- endsource: ru/api/_includes/authorization.md -->

* <!-- source: ru/api/_includes/content-type-json.md -->
  `Content-Type`: формат тела запроса. Должен иметь значение `application/json`.
  <!-- endsource: ru/api/_includes/content-type-json.md -->


* <!-- source: ru/api/_includes/org-id.md -->
  `X-Org-ID` или `X-Cloud-Org-ID`: идентификатор организации.

  - если к Трекеру привязана организация Яндекс 360 для бизнеса, используйте заголовок `X-Org-ID`,

  - если к Трекеру привязана организация Yandex Identity Hub, используйте заголовок `X-Cloud-Org-ID`.
  <!-- endsource: ru/api/_includes/org-id.md -->

  <!-- source: ru/api/_includes/org-id.md -->
  Чтобы узнать идентификатор организации, перейдите на страницу **Администрирование** → [**Организации**](https://tracker.yandex.ru/admin/orgs) и скопируйте значение поля **идентификатор**.
  <!-- endsource: ru/api/_includes/org-id.md -->


{% endcut %}
<!-- endsource: ru/api/_includes/headings.md -->

{% cut "Ресурс" %}

Параметр | Описание | Тип данных
-------- | -------- | ----------
\<id_очереди\> | Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. | Строка

{% endcut %}

{% cut "Параметры тела запроса" %}

Тело запроса содержит информацию, необходимую для управления доступами.

**Допустимые поля объекта тела запроса**

Укажите в запросе хотя бы одно из полей:

Параметр | Описание | Тип данных
-------- | -------- | ----------
create | Разрешения на создание задач в очереди. | Объект
write | Разрешения на редактирование задач в очереди. | Объект
read | Разрешения на чтение задач в очереди. | Объект
grant | Разрешения на изменение настроек очереди. | Объект
deny | Запрет доступа к очереди. | Объект


**Допустимые поля объектов, к которым применяются разрешения**

Каждое из полей тела запроса содержит перечень пользователей, групп, ролей, к которым применяется действие разрешения. Укажите в перечне хотя бы одно из полей:

Параметр | Описание | Тип данных
-------- | -------- | ----------
users | Список пользователей. | Объект или массив элементов
groups | Список групп. | Объект или массив элементов
roles | Список ролей. | Объект или массив элементов

{% note info "" %}

Для поля `deny` доступны только `users` и `groups`. Роли запретить нельзя.

{% endnote %}

**Допустимые значения полей объектов, к которым применяются разрешения**

В каждом из полей можно указать либо массив идентификаторов, либо объект:

- Если указан массив идентификаторов, то разрешения для данных ресурсов будут созданы или перезаписаны в соответствии с запросом;
- Если указан объект, то разрешения будут добавлены или отозваны в соответствии с указанным ключом:

Ключ | Описание | Тип данных
-------- | -------- | ----------
add | Добавить разрешение. | Массив элементов
remove | Отозвать разрешение. | Массив элементов

**Допустимые идентификаторы**

#|
|| Тип ресурса | Идентификатор | Описание |Тип данных ||
|| **users** | login | Логин пользователя. | Строка ||
|| | uid | Уникальный идентификатор учетной записи пользователя в Трекере. | Число ||
|| | passportUid | Уникальный идентификатор аккаунта пользователя в Яндекс ID. | Число ||
||   | cloudUid | Уникальный идентификатор пользователя в Yandex Identity Hub. | Строка ||
|| | trackerUid | Уникальный идентификатор аккаунта пользователя в Трекере. | Число ||
|| **groups** | id | Идентификатор группы.

Идентификаторы групп можно получить запросом `https://api.tracker.yandex.net/v3/groups`. | Число ||
|| **roles** | role_id | Идентификатор роли:
* `author` — Автор,
* `assignee` — Исполнитель,
* `follower` — Наблюдатель,
* `access` — С правом доступа.
 | Строка ||
|#


{% endcut %}

> Пример 1: Выдать права на создание и редактирование задач в очереди с ключом `TESTQUEUE` пользователю с логином `user1`.
>
> - Используется HTTP-метод `PATCH`.
> - Права выдаются пользователю `user1` в очереди с ключом `TESTQUEUE`.
> - В результате запроса имеющиеся у пользователя права в очереди будут перезаписаны.
> ```json translate=no
> PATCH /v3/queues/TESTQUEUE/permissions HTTP/1.1
> Host: api.tracker.yandex.net
> Authorization: OAuth y0__xAbc******
> Content-Type: application/json
> X-Org-ID: 1234******
>
> {
>     "create": {
>        "users": ["user1"]
>     },
>     "write": {
>        "users": ["user1"]
>     }
> }
> ```

> Пример 2: Настроить права доступа к очереди с ключом `TESTQUEUE`:
>
> - Используется HTTP-метод `PATCH`.
> - Пользователю `user1` выдается право настройки очереди с ключом `TESTQUEUE`.
> - У пользователя с идентификатором `12345` отзывается право настройки очереди с ключом `TESTQUEUE`.
> ```json translate=no
> PATCH /v3/queues/TESTQUEUE/permissions HTTP/1.1
> Host: api.tracker.yandex.net
> Authorization: OAuth y0__xAbc******
> Content-Type: application/json
> X-Cloud-Org-ID: ab1c******
>
> {
>     "grant": {
>        "users": {
>           "add":["user1"],
>           "remove":[12345]
>        }
>     }
> }
> ```

> Пример 3: Запретить доступ к очереди с ключом `TESTQUEUE`.
>
> - Используется HTTP-метод `PATCH`.
> - Пользователю `user1` запрещается доступ к очереди с ключом `TESTQUEUE`.
> ```json translate=no
> PATCH /v3/queues/TESTQUEUE/permissions HTTP/1.1
> Host: api.tracker.yandex.net
> Authorization: OAuth y0__xAbc******
> Content-Type: application/json
> X-Org-ID: 1234******
>
> {
>     "deny": {
>        "users": ["user1"]
>     }
> }
> ```


## Формат ответа {#answer}

{% list tabs %}
- Запрос выполнен успешно

   <!-- source: ru/api/_includes/answer-200.md -->
   В случае успешного выполнения запроса API возвращает ответ с кодом `200 OK`.
   <!-- endsource: ru/api/_includes/answer-200.md -->

   ```json translate=no
   {
       "self": "https://api.tracker.yandex.net/v3/queues/TESTQUEUE/permissions",
       "version": 11,
       "create": {
           "self": "https://api.tracker.yandex.net/v3/queues/TESTQUEUE/permissions/create",
           "users": [
               {
                 "self": "https://api.tracker.yandex.net/v3/users/11********",
                 "id": "11********",
                 "display": "Имя Фамилия",
                 "cloudUid": "ajeppa7dgp53********",
                 "passportUid": 11********
               }
           ],
           "roles": [
               { "self": "https://api.tracker.yandex.net/v3/roles/author", "id": "author", "display": "Автор" },
               { "self": "https://api.tracker.yandex.net/v3/roles/queue-lead", "id": "queue-lead", "display": "Владелец очереди" },
               { "self": "https://api.tracker.yandex.net/v3/roles/assignee", "id": "assignee", "display": "Исполнитель" }
           ]
       },
       "write": {
           "self": "https://api.tracker.yandex.net/v3/queues/TESTQUEUE/permissions/write",
           "users": [
                {
                 "self": "https://api.tracker.yandex.net/v3/users/11********",
                 "id": "11********",
                 "display": "Имя Фамилия",
                 "cloudUid": "ajeppa7dgp53********",
                 "passportUid": 11********
               }
           ],
           "roles": [
               { "self": "https://api.tracker.yandex.net/v3/roles/author", "id": "author", "display": "Автор" },
               { "self": "https://api.tracker.yandex.net/v3/roles/queue-lead", "id": "queue-lead", "display": "Владелец очереди" },
               { "self": "https://api.tracker.yandex.net/v3/roles/assignee", "id": "assignee", "display": "Исполнитель" }
           ]
       },
       "grant": {
           "self": "https://api.tracker.yandex.net/v3/queues/TESTQUEUE/permissions/grant",
           "users": [
                {
                 "self": "https://api.tracker.yandex.net/v3/users/11********",
                 "id": "11********",
                 "display": "Имя Фамилия",
                 "cloudUid": "ajeppa7dgp53********",
                 "passportUid": 11********
               }
           ],
           "roles": [
               { "self": "https://api.tracker.yandex.net/v3/roles/author", "id": "author", "display": "Автор" },
               { "self": "https://api.tracker.yandex.net/v3/roles/queue-lead", "id": "queue-lead", "display": "Владелец очереди" },
               { "self": "https://api.tracker.yandex.net/v3/roles/assignee", "id": "assignee", "display": "Исполнитель" }
           ]
       },
       "deny": {
           "self": "https://api.tracker.yandex.net/v3/queues/TESTQUEUE/permissions/deny",
           "users": [
                {
                 "self": "https://api.tracker.yandex.net/v3/users/11********",
                 "id": "11********",
                 "display": "Имя Фамилия",
                 "cloudUid": "ajeppa7dgp53********",
                 "passportUid": 11********
               }
           ]
       }
   }

   ```

   {% cut "Параметры ответа" %}
   Параметр | Описание | Тип данных
   ----- | ----- | -----
   self | Ссылка на объект выданных доступов в очереди. | Строка
   version | Номер версии. | Число
   create | Разрешения на создание задач в очереди. | Объект
   write | Разрешения на редактирование задач в очереди. | Объект
   read | Разрешения на чтение задач в очереди. | Объект
   grant | Разрешения на изменение настроек очереди. | Объект
   deny | Запрет доступа к очереди. | Объект

   {% endcut %}

- Запрос выполнен с ошибкой

   Если запрос не был успешно обработан, API возвращает ответ с кодом ошибки:

   <!-- source: ru/api/_includes/answer-error-404.md -->
   404
   :   Запрошенный объект не был найден. Возможно, вы указали неверное значение идентификатора или ключа объекта.
   <!-- endsource: ru/api/_includes/answer-error-404.md -->

{% endlist %}

