В этом документе описывается, как администраторы уровня учетной записи и реселлеры могут использовать API Enterprise License Manager для управления назначением лицензий пользователям. После включения лицензий SKU продукта вашей учетной записи и создания пользователей используйте API Enterprise License Manager для назначения, обновления, получения и удаления лицензий для пользователей вашей учетной записи.
В этой версии API Enterprise License Manager используется администраторами учетных записей и торговыми посредниками. Делегированные администраторы с привилегиями License Management
также могут использовать API Enterprise License Manager.
Примечание. API Enterprise License Manager используется клиентом Google. Информацию о том, как сторонние разработчики приложений Google управляют лицензиями, см. в API Google Workspace Marketplace .
API Enterprise License Manager основан на подходе к проектированию веб-сервисов на основе передачи репрезентативного состояния (RESTful).
Управление лицензиями
Назначение лицензии
Перед этой операцией клиент или реселлер заказал лицензии на продукты Google и создал пользователя. Чтобы назначить одну из этих лицензий на продукт этому пользователю, используйте следующий HTTP-запрос POST
. Включите заголовок Authorization
, как описано в разделе «Авторизация запросов» . Чтобы узнать идентификаторы продуктов и SKU, см. доступные продукты и SKU API:
POST https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user
Примечание. Пользователю могут быть назначены лицензии на широкий спектр различных продуктов Google. Но пользователю одновременно назначается только одна лицензия SKU на каждый продукт. С помощью API лицензию SKU пользователя можно переназначить другой лицензии SKU в продукте.
В этом примере SKU Google-Drive-storage-20GB назначается пользователю, основной адрес электронной почты которого — alex@example.com:
POST https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user
Тело запроса JSON:
{ "userId" : "alex@example.com", }
Успешный ответ возвращает код состояния HTTP 200
. Возможные коды ошибок см. в разделе Коды ошибок API. В случае успеха ответ возвращает статус назначения лицензии в формате данных JSON.
JSON-ответ
{ "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user/alex@example.com", "userId": "alex@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-20GB", "skuName": "Google Drive storage 20 GB", "productName": "Google Drive storage" }
Дополнительные сведения см. на справочной странице метода вставки LicenseAssignments.
Переназначение SKU продукта пользователя с другим SKU в том же продукте.
Чтобы переназначить лицензию пользователя новому номеру SKU лицензии в том же продукте, используйте следующий HTTP-запрос PUT
. API также поддерживает синтаксис патчей . Включите заголовок Authorization
, как описано в разделе «Авторизация запросов» . Чтобы узнать идентификаторы продуктов и SKU, см. доступные продукты и SKU API:
PUT https://www.googleapis.com/apps/licensing/v1/product/productId/sku/the current skuId/user/user's email
В этом примере текущий SKU Google-Drive-storage-20GB обновляется с помощью Google-Drive-storage-50GB. Текущий номер SKU лицензии указан в URI запроса, а номер SKU новой лицензии — в теле запроса:
PUT https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user/alex@example.com
Тело запроса JSON имеет:
{ "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com", "userId": "alex@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-50GB", "skuName": "Google Drive storage 50 GB", "productName": "Google Drive storage" }
Успешный ответ возвращает код состояния HTTP 200
. Возможные коды ошибок см. в разделе Коды ошибок API. В случае успеха ответ возвращает статус назначения лицензии в формате данных JSON.
JSON-ответ
{ "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com", "userId": "alex@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-50GB", "skuName": "Google Drive storage 50 GB", "productName": "Google Drive storage" }
Дополнительные сведения см. на справочных страницах метода обновления LicenseAssignments и метода исправления .
Получить все пользователи, которым назначены лицензии для определенного продукта.
Чтобы получить все пользовательские лицензии для определенного продукта, используйте следующий HTTP-запрос GET
. Включите заголовок Authorization
, как описано в разделе «Авторизация запросов» . Строка запроса customerId
— это основное доменное имя клиента. Строка запроса maxResults
определяет, сколько записей пользовательских лицензий возвращается в ответе API:
GET https://www.googleapis.com/apps/licensing/v1/product/productId/users?customerId=primary domain name&maxResults=max results per page
Чтобы узнать идентификаторы продуктов и SKU, см. раздел « Продукты и SKU, доступные через API».
В этом примере показана первая страница результатов для всех пользователей домена example.com, которым назначены лицензии на продукт хранилища Google-Drive:
GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/users?customerId=example.com&maxResults=2
Успешный ответ возвращает код состояния HTTP 200
. Возможные коды ошибок см. в разделе Коды ошибок API. В случае успеха ответ возвращает список лицензий в формате JSON.
JSON-ответ
{ "kind" : "licensing#licenseAssignmentList", "etag": "etag value", "nextPageToken" : "the next page token value", "items": [ { "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com", "userId": "alex@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-50GB", "skuName": "Google Drive storage 50 GB", "productName": "Google Drive storage" }, { "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/user/keshav@example.com", "userId": "keshav@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-200GB", "skuName": "Google Drive storage 200 GB", "productName": "Google Drive storage" }, ... }
Дополнительные сведения см. на справочной странице метода LicenseAssignments listForProduct .
Получить все пользователи, которым назначены лицензии для определенного SKU продукта.
Чтобы получить список всех пользователей с лицензиями для определенного SKU продукта, используйте следующий HTTP-запрос GET
. Включите заголовок Authorization
, как описано в разделе «Авторизация запросов» . Строка запроса customerId
— это основное доменное имя клиента. Строка запроса maxResults
определяет, сколько пользовательских записей возвращается в ответе API:
GET https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/users?customerId=primary domain name&maxResults=max results per response page
Идентификаторы продуктов и SKU см. в разделе « Продукты и SKU , доступные через API».
В этом примере возвращается первая страница всех пользователей в домене example.com, которым назначена лицензия на номер SKU Google-Drive-storage-200GB. В ответе перечислены две записи пользователя на странице:
GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/users?customerId=example.com&maxResults=2
Успешный ответ возвращает код состояния HTTP 200
. Возможные коды ошибок см. в разделе Коды ошибок API. В случае успеха ответ возвращает список лицензий в формате JSON.
JSON-ответ
{ "kind" : "licensing#licenseAssignmentList", "etag": "etag value", "nextPageToken" : "next page token's value", "items": [ { "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/user/alex@example.com", "userId": "alex@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-200GB", "skuName": "Google Drive storage 200 GB", "productName": "Google Drive storage" }, { "kind": "licensing#licenseAssignment", "etags": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/user/mary@example.com", "userId": "mary@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-200GB", "skuName": "Google Drive storage 200 GB", "productName": "Google Drive storage" }, ... }
Дополнительные сведения см. на справочной странице метода LicenseAssignments listForProductAndSku .
Получить лицензию конкретного пользователя по SKU продукта
Чтобы получить лицензию конкретного пользователя по SKU продукта, используйте следующий HTTP-запрос GET
. Включите заголовок Authorization
, как описано в разделе «Авторизация запросов» . Чтобы узнать идентификаторы продуктов и SKU, см. доступные продукты и SKU API:
GET https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user/userId
В этом примере мы получаем SKU продукта на Google Диске объемом 50 ГБ для пользователя с userId
alex@example.com:
GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com
Если у пользователя есть эта лицензия, это успешный ответ и код состояния HTTP 200
. Возможные коды ошибок см. в разделе Коды ошибок API. В случае успеха ответ возвращает лицензию пользователя в формате JSON.
JSON-ответ
{ "kind": "licensing#licenseAssignment", "etag": "etag value", "selfLink": "https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com", "userId": "keshav@example.com", "productId": "Google-Drive-storage", "skuId": "Google-Drive-storage-50GB", "skuName": "Google Drive storage 50 GB", "productName": "Google Drive storage" }
Дополнительные сведения см. на справочной странице метода получения LicenseAssignments.
Удалить лицензию
Чтобы отменить назначение лицензии пользователю, используйте следующий HTTP-запрос DELETE
. Включите заголовок Authorization
, как описано в разделе «Авторизация запросов» . Чтобы узнать идентификаторы продуктов и SKU, см. доступные продукты и SKU API:
DELETE https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user/userId
В этом примере лицензия Google-Drive-storage-50GB не назначена пользователю с userId
alex@example.com:
DELETE https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-50GB/user/alex@example.com
Успешный ответ возвращает код состояния HTTP 200
. Возможные коды ошибок см. в разделе Коды ошибок API.
Дополнительные сведения см. на справочной странице метода удаления LicenseAssignments.
Коды ошибок
Если запрос не удался, в ответе содержится краткое объяснение ошибки:
Код ошибки | Описание |
---|---|
400 | Неверный запрос: адрес электронной почты пользователя недействителен. |
400 | Неверный запрос: артикул/продукт не существует. |
401 | У актера нет учетных данных для вызова этого API. |
404 | Если у пользователя нет этой лицензии, в ответе будет код ошибки «не найден». |
412 | Предварительное условие не выполнено. Для получения подробной информации об этой ошибке проверьте поле message . Например:
|
503 | Служба диспетчера лицензий недоступна. |