User Entitlements - Update User Entitlements
Измените права (лицензии, расширения, проекты, teams и т. д.) для одного или нескольких пользователей.
PATCH https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1
PATCH https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?doNotSendInviteForNewUsers={doNotSendInviteForNewUsers}&api-version=7.1
Параметры URI
Имя | В | Обязательно | Тип | Описание |
---|---|---|---|---|
organization
|
path | True |
string |
Имя организации Azure DevOps. |
api-version
|
query | True |
string |
Используемая версия API. Для использования этой версии API необходимо задать значение "7.1". |
do
|
query |
boolean |
Отправка приглашений по электронной почте новым пользователям или нет |
Текст запроса
Media Types: "application/json-patch+json"
Имя | Тип | Описание |
---|---|---|
from |
string |
Путь к копированию из операции перемещения и копирования. |
op |
Операция исправления |
|
path |
string |
Путь к операции. В случае массива индекс на основе нуля можно использовать для указания позиции в массиве (например, /biscuits/0/name). Символ "-" можно использовать вместо индекса для вставки в конец массива (например, /biscuits/-). |
value |
object |
Значение операции. Это либо примитив, либо JToken. |
Ответы
Имя | Тип | Описание |
---|---|---|
200 OK |
успешная операция |
Безопасность
oauth2
Тип:
oauth2
Flow:
accessCode
URL-адрес авторизации:
https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
URL-адрес токена:
https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
Области
Имя | Описание |
---|---|
vso.memberentitlementmanagement_write | Предоставляет возможность управлять пользователями, их лицензиями, а также проектами и расширениями, к которым они могут получить доступ. |
Примеры
Образец запроса
PATCH https://vsaex.dev.azure.com/{organization}/_apis/userentitlements?api-version=7.1
[
{
"from": "",
"op": "replace",
"path": "/62707782-484a-4965-897a-50d2828a6510/accessLevel",
"value": {
"accountLicenseType": "express",
"licensingSource": "account"
}
},
{
"from": "",
"op": "replace",
"path": "/df8d33a1-3039-4d20-b45a-7c93ab1288aa/accessLevel",
"value": {
"accountLicenseType": "express",
"licensingSource": "account"
}
},
{
"from": "",
"op": "remove",
"path": "/df8d33a1-3039-4d20-b45a-7c93ab1288aa/projectEntitlements/2e77ca01-f341-461b-94b9-c774d1ed3927",
"value": ""
},
{
"from": "",
"op": "add",
"path": "/df8d33a1-3039-4d20-b45a-7c93ab1288aa/extensions",
"value": {
"id": "ms.feed"
}
}
]
Пример ответа
{
"id": "7b0b98fe-e874-4d92-a921-96a779c6ecdc",
"status": "succeeded",
"haveResultsSucceeded": true,
"completed": true,
"results": [
{
"isSuccess": true,
"errors": [],
"userId": "62707782-484a-4965-897a-50d2828a6510",
"result": {
"id": "62707782-484a-4965-897a-50d2828a6510",
"user": {
"subjectKind": "user",
"metaType": "member",
"domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
"principalName": "user1@fabrikam.com",
"mailAddress": "user1@fabrikam.com",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "User 1",
"_links": {
"self": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/aad.wUGM3IDZ1UTZzczNtkTZmJWLiRzY30yNyE2MtcDNmFTOzMjY"
},
"memberships": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/aad.wUGM3IDZ1UTZzczNtkTZmJWLiRzY30yNyE2MtcDNmFTOzMjY"
},
"membershipState": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/aad.wUGM3IDZ1UTZzczNtkTZmJWLiRzY30yNyE2MtcDNmFTOzMjY"
},
"storageKey": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/aad.wUGM3IDZ1UTZzczNtkTZmJWLiRzY30yNyE2MtcDNmFTOzMjY"
}
},
"url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/aad.wUGM3IDZ1UTZzczNtkTZmJWLiRzY30yNyE2MtcDNmFTOzMjY",
"descriptor": "aad.wUGM3IDZ1UTZzczNtkTZmJWLiRzY30yNyE2MtcDNmFTOzMjY"
},
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "stakeholder",
"msdnLicenseType": "none",
"licenseDisplayName": "Stakeholder",
"status": "active",
"statusMessage": "",
"assignmentSource": "unknown"
},
"lastAccessedDate": "0001-01-01T00:00:00Z",
"projectEntitlements": [],
"extensions": [],
"groupAssignments": []
}
},
{
"isSuccess": true,
"errors": [],
"userId": "df8d33a1-3039-4d20-b45a-7c93ab1288aa",
"result": {
"id": "df8d33a1-3039-4d20-b45a-7c93ab1288aa",
"user": {
"subjectKind": "user",
"metaType": "member",
"domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
"principalName": "user2@fabrikam.com",
"mailAddress": "user2@fabrikam.com",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "User 2",
"_links": {
"self": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"memberships": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"membershipState": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"storageKey": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
}
},
"url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN",
"descriptor": "aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "stakeholder",
"msdnLicenseType": "none",
"licenseDisplayName": "Stakeholder",
"status": "active",
"statusMessage": "",
"assignmentSource": "unknown"
},
"lastAccessedDate": "0001-01-01T00:00:00Z",
"projectEntitlements": [],
"extensions": [],
"groupAssignments": []
}
},
{
"isSuccess": true,
"errors": [],
"userId": "df8d33a1-3039-4d20-b45a-7c93ab1288aa",
"result": {
"id": "df8d33a1-3039-4d20-b45a-7c93ab1288aa",
"user": {
"subjectKind": "user",
"metaType": "member",
"domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
"principalName": "user2@fabrikam.com",
"mailAddress": "user2@fabrikam.com",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "User 2",
"_links": {
"self": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"memberships": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"membershipState": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"storageKey": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
}
},
"url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN",
"descriptor": "aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "stakeholder",
"msdnLicenseType": "none",
"licenseDisplayName": "Stakeholder",
"status": "active",
"statusMessage": "",
"assignmentSource": "unknown"
},
"lastAccessedDate": "0001-01-01T00:00:00Z",
"projectEntitlements": [],
"extensions": [],
"groupAssignments": []
}
},
{
"isSuccess": true,
"errors": [],
"userId": "df8d33a1-3039-4d20-b45a-7c93ab1288aa",
"result": {
"id": "df8d33a1-3039-4d20-b45a-7c93ab1288aa",
"user": {
"subjectKind": "user",
"metaType": "member",
"domain": "14c5367e-ee12-4c94-98b8-b52c1fe3cfb1",
"principalName": "user2@fabrikam.com",
"mailAddress": "user2@fabrikam.com",
"origin": "aad",
"originId": "00000000-0000-0000-0000-000000000000",
"displayName": "User 2",
"_links": {
"self": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"memberships": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/memberships/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"membershipState": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/membershipstates/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"storageKey": {
"href": "https://vssps.dev.azure.com/fabrikam/_apis/graph/storagekeys/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
}
},
"url": "https://vssps.dev.azure.com/fabrikam/_apis/graph/users/aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN",
"descriptor": "aad.4QTZxY2YllTZ0YWNtETZmFWLlFjN30SOjRmNtY2M1QzN4MmN"
},
"accessLevel": {
"licensingSource": "account",
"accountLicenseType": "stakeholder",
"msdnLicenseType": "none",
"licenseDisplayName": "Stakeholder",
"status": "active",
"statusMessage": "",
"assignmentSource": "unknown"
},
"lastAccessedDate": "0001-01-01T00:00:00Z",
"projectEntitlements": [],
"extensions": [],
"groupAssignments": []
}
}
]
}
Определения
Имя | Описание |
---|---|
Json |
Модель JSON для операций исправления JSON |
Operation |
Операция исправления |
Operation |
Текущее состояние операции. |
User |
|
User |
JsonPatchDocument
Модель JSON для операций исправления JSON
Имя | Тип | Описание |
---|---|---|
from |
string |
Путь к копированию из операции перемещения и копирования. |
op |
Операция исправления |
|
path |
string |
Путь к операции. В случае массива индекс на основе нуля можно использовать для указания позиции в массиве (например, /biscuits/0/name). Символ "-" можно использовать вместо индекса для вставки в конец массива (например, /biscuits/-). |
value |
object |
Значение операции. Это либо примитив, либо JToken. |
Operation
Операция исправления
Значение | Описание |
---|---|
add | |
copy | |
move | |
remove | |
replace | |
test |
OperationStatus
Текущее состояние операции.
Значение | Описание |
---|---|
cancelled |
Операция была отменена пользователем. |
failed |
Операция завершилась сбоем. |
inProgress |
Операция выполняется. |
notSet |
Операция не имеет набора состояний. |
queued |
Операция была поставлена в очередь. |
succeeded |
Операция успешно завершена. |
UserEntitlementOperationReference
Имя | Тип | Описание |
---|---|---|
completed |
boolean |
Операция завершена с успехом или сбоем. |
haveResultsSucceeded |
boolean |
Значение true, если все операции были успешными. |
id |
string (uuid) |
Уникальный идентификатор операции. |
pluginId |
string (uuid) |
Уникальный идентификатор подключаемого модуля. |
results |
Список результатов для каждой операции. |
|
status |
Текущее состояние операции. |
|
url |
string |
URL-адрес для получения объекта полной операции. |
UserEntitlementOperationResult
Имя | Тип | Описание |
---|---|---|
errors |
object[] |
Список кодов ошибок, сопряженных с соответствующими сообщениями об ошибках. |
isSuccess |
boolean |
Состояние успешности операции. |
result |
string (T) |
Результирующее свойство права. Дополнительные сведения о конкретных реализациях см. в следующей статье: |
userId |
string (uuid) |
Идентификатор действия члена. |