Выдать права доступа к очереди
Запрос позволяет настроить доступы к очереди.
Формат запроса
Перед выполнением запроса получите доступ к API.
Чтобы настроить доступы к очереди, используйте HTTP-запрос с методом PATCH
. Параметры запроса передаются в его теле в формате JSON.
PATCH /v2/queues/<ключ_или_идентификатор_очереди>/permissions
Host: api.tracker.yandex.net
Authorization: OAuth <OAuth-токен>
X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации>
{
"create": {
"groups": [<идентификатор_группы_1>, <идентификатор_группы_2>]
},
"write": {
"users": {
"remove": ["<логин_пользователя_1>", "<идентификатор_пользователя_2>"]
},
"groups": {
"add":[<идентификатор_группы_1>]
},
"roles": {
"add":["author", "assignee"]
}
},
"read": {
"groups": {
"add":[<идентификатор_группы_3>]
},
"roles": {
"add":["follower"]
}
},
"grant": {
"users": {
"remove": ["<идентификатор_аккаунта_пользователя_4>", "<идентификатор_пользователя_2>"]
},
},
}
Заголовки
-
Host
Адрес узла, предоставляющего API:
api.tracker.yandex.net
-
Authorization
OAuth-токен в формате
OAuth <OAuth-токен>
, например:OAuth 0c4181a7c2cf4521964a72ff********
-
X-Org-ID или X-Cloud-Org-ID
Идентификатор организации. Узнать его можно на странице организаций Tracker
.- Если к Tracker привязана только организация Яндекс 360 для бизнеса, используется заголовок
X-Org-ID
. - Если к Tracker привязана только организация Yandex Cloud Organization, используется заголовок
X-Cloud-Org-ID
. - Если к Tracker одновременно привязаны организации Яндекс 360 для бизнеса и Yandex Cloud Organization, используется заголовок
X-Org-ID
и идентификатор организации Яндекс 360 для бизнеса.
- Если к Tracker привязана только организация Яндекс 360 для бизнеса, используется заголовок
Ресурс
Параметр | Описание | Тип данных |
---|---|---|
<ключ_или_идентификатор_очереди> | Идентификатор или ключ очереди. Ключ очереди чувствителен к регистру символов. | Строка |
Параметры тела запроса
Тело запроса содержит информацию, необходимую для управления доступами.
Допустимые поля объекта тела запроса
Укажите в запросе хотя бы одно из полей:
Параметр | Описание | Тип данных |
---|---|---|
create | Разрешения на создание задач в очереди. | Объект |
write | Разрешения на редактирование задач в очереди. | Объект |
read | Разрешения на чтение задач в очереди. | Объект |
grant | Разрешения на изменение настроек очереди. | Объект |
Допустимые поля объектов, к которым применяются разрешения
Каждое из полей тела запроса содержит перечень пользователей, групп, ролей, к которым применяется действие разрешения. Укажите в перечне хотя бы одно из полей:
Параметр | Описание | Тип данных |
---|---|---|
users | Список пользователей. | Объект или массив элементов |
groups | Список групп. | Объект или массив элементов |
roles | Список ролей. | Объект или массив элементов |
Допустимые значения полей объектов, к которым применяются разрешения
В каждом из полей можно указать либо массив идентификаторов, либо объект:
- Если указан массив идентификаторов, то разрешения для данных ресурсов будут созданы или перезаписаны в соответствии с запросом;
- Если указан объект, то разрешения будут добавлены или отозваны в соответствии с указанным ключом:
Ключ | Описание | Тип данных |
---|---|---|
add | Добавить разрешение. | Массив элементов |
remove | Отозвать разрешение. | Массив элементов |
Допустимые идентификаторы
Тип ресурса | Идентификатор | Описание | Тип данных |
---|---|---|---|
users | uid | Уникальный идентификатор учетной записи пользователя в Tracker. | Число |
passportUid | Уникальный идентификатор аккаунта пользователя в организации Яндекс 360 для бизнеса и Яндекс ID. | Число | |
login | Логин пользователя. | Строка | |
cloudUid | Уникальный идентификатор пользователя в Yandex Cloud Organization. | Строка | |
trackerUid | Уникальный идентификатор аккаунта пользователя в Tracker. | Число | |
groups | id | Идентификатор группы. | Число |
roles | role_id | Идентификатор роли. | Строка |
Примечание
Идентификаторы ролей:
author
— Автор,assignee
— Исполнитель,follower
— Наблюдатель,access
— С правом доступа.
Идентификаторы групп можно получить запросом api.tracker.yandex.net/v2/groups
.
Пример 1: Выдать права на создание и редактирование задач в очереди с ключом
TESTQUEUE
пользователю с логиномuser1
.
- Используется HTTP-метод
PATCH
.- Права выдаются пользователю
user1
в очереди с ключомTESTQUEUE
.- В результате запроса имеющиеся у пользователя права в очереди будут перезаписаны.
PATCH /v2/queues/TESTQUEUE/permissions HTTP/1.1 Host: api.tracker.yandex.net Authorization: OAuth <OAuth-токен> X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации> { "create": { "users": ["user1"] }, "write": { "users": ["user1"] } }
Пример 2: Выдать право настройки очереди с ключом
TESTQUEUE
пользователю с логиномuser1
и отозвать такое право у пользователя с уникальным идентификатором12********
.
- Используется HTTP-метод
PATCH
.- Пользователю
user1
выдается право настройки очереди с ключомTESTQUEUE
.- У пользователя с идентификатором
12********
отзывается право настройки очереди с ключомTESTQUEUE
.PATCH /v2/queues/TESTQUEUE/permissions HTTP/1.1 Host: api.tracker.yandex.net Authorization: OAuth <OAuth-токен> X-Org-ID или X-Cloud-Org-ID: <идентификатор_организации> { "grant": { "users": { "add":["user1"], "remove":['12********'] } } }
Формат ответа
{
"self": "https://api.tracker.yandex.net/v2/queues/TESTQUEUE/permissions",
"version": 11,
"create": {
"self": "https://api.tracker.yandex.net/v2/queues/TESTQUEUE/permissions/create",
"users": [
{ "self": "https://api.tracker.yandex.net/v2/users/98********", "id": "98********", "display": "Пользователь 1", "cloudUid": "ajej6h7nffmtaf*****", "passportUid": 98******** }
],
"roles": [
{ "self": "https://api.tracker.yandex.net/v2/roles/author", "id": "author", "display": "Автор" },
{ "self": "https://api.tracker.yandex.net/v2/roles/queue-lead", "id": "queue-lead", "display": "Владелец очереди" },
{ "self": "https://api.tracker.yandex.net/v2/roles/assignee", "id": "assignee", "display": "Исполнитель" }
]
},
"write": {
"self": "https://api.tracker.yandex.net/v2/queues/TESTQUEUE/permissions/write",
"users": [
{ "self": "https://api.tracker.yandex.net/v2/users/98********", "id": "98********", "display": "Пользователь 1", "cloudUid": "ajej6h7nffmtaf*****", "passportUid": 98******** }
],
"roles": [
{ "self": "https://api.tracker.yandex.net/v2/roles/author", "id": "author", "display": "Автор" },
{ "self": "https://api.tracker.yandex.net/v2/roles/queue-lead", "id": "queue-lead", "display": "Владелец очереди" },
{ "self": "https://api.tracker.yandex.net/v2/roles/assignee", "id": "assignee", "display": "Исполнитель" }
]
},
"grant": {
"self": "https://api.tracker.yandex.net/v2/queues/TESTQUEUE/permissions/grant",
"users": [
{ "self": "https://api.tracker.yandex.net/v2/users/98********", "id": "98********", "display": "Пользователь 1", "cloudUid": "ajej6h7nffmtaf*****", "passportUid": 98******** }
],
"roles": [
{ "self": "https://api.tracker.yandex.net/v2/roles/author", "id": "author", "display": "Автор" },
{ "self": "https://api.tracker.yandex.net/v2/roles/queue-lead", "id": "queue-lead", "display": "Владелец очереди" },
{ "self": "https://api.tracker.yandex.net/v2/roles/assignee", "id": "assignee", "display": "Исполнитель" }
]
}
}
Параметры ответа
Параметр | Описание | Тип данных |
---|---|---|
self | Ссылка на объект выданных доступов в очереди. | Строка |
version | Номер версии. | Число |
create | Разрешения на создание задач в очереди. | Объект |
write | Разрешения на редактирование задач в очереди. | Объект |
read | Разрешения на чтение задач в очереди. | Объект |
grant | Разрешения на изменение настроек очереди. | Объект |
Если запрос не был успешно обработан, API возвращает ответ с кодом ошибки:
- 404
- Запрошенный объект не был найден. Возможно, вы указали неверное значение идентификатора или ключа объекта.