API Enterprise License Manager: Руководство разработчика

В этом документе описывается, как администраторы на уровне учетной записи и реселлеры могут использовать 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 . Например:
  • Auto License switching is not allowed.
  • Auto License un-assignment is not allowed.
  • For reassign operations, the new SKU should be different from the old SKU: sku
  • Reassign operation can't be performed on different products: product1, product2
  • Reassign operation can't be performed on different users: user1, user2
  • There aren't enough available licenses for the specified product-SKU pair
  • User already has a license for the specified product and SKU
  • User already has a license of the product, but with a different SKU. To reassign a new SKU for this product, use the 'update' operation.
503 Служба диспетчера лицензий недоступна.