API Enterprise License Manager: guia para desenvolvedores

Este documento descreve como os administradores no nível da conta e do revendedor podem usar a API Enterprise License Manager para gerenciar as atribuições de licenças dos usuários. Depois que as licenças de SKU dos produtos da conta forem ativadas e os usuários forem criados, use a API Enterprise License Manager para atribuir, atualizar, recuperar e excluir as licenças dos usuários da sua conta.

Nesta versão, a API Enterprise License Manager é usada pelos administradores da conta e do revendedor. Delegada os administradores com o privilégio License Management também podem usar a API Enterprise License Manager.

Observação: a API Enterprise License Manager é usada por um cliente do Google. Saiba como os desenvolvedores de apps de terceiros do Google gerenciam as licenças na API Google Workspace Marketplace.

A API Enterprise License Manager é baseada na abordagem de design Representational State Transfer (RESTful) para serviços da Web.

Como gerenciar licenças

Atribuir uma licença

Antes da operação, o cliente ou revendedor pediu licenças de produtos do Google e criou o usuário. Para atribuir uma dessas licenças de produto a esse usuário, use a seguinte solicitação HTTP POST. Inclua o cabeçalho Authorization conforme descrito em Como autorizar solicitações. Para IDs de produtos e SKUs, consulte os Produtos e SKUs disponíveis na API:

POST https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user

Observação:é possível atribuir licenças de vários produtos do Google a um usuário. No entanto, apenas uma licença de SKU por produto é atribuída a um usuário por vez. Ao usar a API, a licença SKU de um usuário pode ser reatribuída a outra licença dentro do produto.

Este exemplo atribui a SKU Google-Drive-storage-20GB ao usuário com o endereço de e-mail principal alex@example.com:

POST https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user

O corpo da solicitação JSON:

{
  "userId" : "alex@example.com",
}

Uma resposta bem-sucedida retorna um código de status HTTP 200. Para conferir os possíveis códigos de erro, consulte a seção Códigos de erro da API. Se bem-sucedida, a resposta vai retornar o status da atribuição de licenciamento no formato de dados JSON.

Resposta 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"
}

Para mais informações, consulte a página de referência insert method de LicenseAssignments.

Reatribuir a SKU do produto de um usuário com uma SKU diferente no mesmo produto

Para reatribuir a licença de um usuário a um novo SKU de licença no mesmo produto, use a seguinte solicitação HTTP PUT. A API também é compatível com a sintaxe de patch. Inclua o cabeçalho Authorization conforme descrito em Como autorizar solicitações. Para IDs de produtos e SKUs, consulte os Produtos e SKUs disponíveis na API:

PUT https://www.googleapis.com/apps/licensing/v1/product/productId/sku/the current skuId/user/user's email

Este exemplo atualiza a SKU atual do Google-Drive-storage-20 GB com a SKU Google-Drive-storage-50GB. A SKU de licença atual está no URI da solicitação, e a nova SKU de licença está no corpo da solicitação:

PUT https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-20GB/user/alex@example.com

O corpo da solicitação JSON tem :

{
  "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"
}

Uma resposta bem-sucedida retorna um código de status HTTP 200. Para conferir os possíveis códigos de erro, consulte a seção Códigos de erro da API. Se bem-sucedida, a resposta vai retornar o status de atribuição de licença no formato de dados JSON.

Resposta 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"
}

Para mais informações, consulte as páginas de referência método de atualização e método de patch de LicenseAssignments.

Recuperar todas as licenças atribuídas aos usuários de um produto específico

Para receber todas as licenças de usuário de um produto específico, use a seguinte solicitação HTTP GET. Inclua o cabeçalho Authorization conforme descrito em Como autorizar solicitações. A string de consulta customerId é o nome de domínio principal do cliente. A string de consulta maxResults determina quantas entradas de licença de usuário são retornadas na resposta da API:

GET https://www.googleapis.com/apps/licensing/v1/product/productId/users?customerId=primary domain name&maxResults=max results per page

Para IDs de produtos e SKUs, consulte os Produtos e SKUs disponíveis na API.

Este exemplo lista a primeira página de resultados de todos os usuários com licenças atribuídas ao domínio example.com para o produto Google-Drive-storage:

GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/users?customerId=example.com&maxResults=2

Uma resposta bem-sucedida retorna um código de status HTTP 200. Para conferir os possíveis códigos de erro, consulte a seção Códigos de erro da API. Se bem-sucedida, a resposta retornará a lista de licenciamento no formato JSON.

Resposta 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"
  },
  ...
}

Para mais informações, consulte a página de referência listForProduct method de LicenseAssignments.

Recuperar todas as licenças atribuídas aos usuários para um SKU de produto específico

Para ver uma lista de todos os usuários com licenças da SKU de um produto específico, use a seguinte solicitação HTTP GET. Inclua o cabeçalho Authorization conforme descrito em Como autorizar solicitações. A string de consulta customerId é o nome de domínio principal do cliente. A string de consulta maxResults determina quantas entradas de usuário são retornadas na resposta da API:

GET https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/users?customerId=primary domain name&maxResults=max results per response page

Para IDs de produtos e SKUs, consulte a página Produtos e SKUs disponíveis na API.

Este exemplo retorna a primeira página de todos os usuários no domínio example.com com uma licença atribuída à SKU Google-Drive-storage-200GB. A resposta lista duas entradas de usuário por página:

GET https://www.googleapis.com/apps/licensing/v1/product/Google-Drive-storage/sku/Google-Drive-storage-200GB/users?customerId=example.com&maxResults=2

Uma resposta bem-sucedida retorna um código de status HTTP 200. Para conferir os possíveis códigos de erro, consulte a seção Códigos de erro da API. Se bem-sucedida, a resposta retornará a lista de licenciamento no formato JSON.

Resposta 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"
    },
    ...
  }

Para mais informações, consulte a página de referência do método listForProductAndSku de LicenseAssignments.

Recuperar a licença de um usuário específico por SKU de produto

Para receber a licença de um usuário específico por SKU de produto, use a seguinte solicitação HTTP GET. Inclua o cabeçalho Authorization conforme descrito em Como autorizar solicitações. Para IDs de produtos e SKUs, consulte os Produtos e SKUs disponíveis da API:

GET https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user/userId

Este exemplo mostra a SKU do produto de 50 GB do armazenamento no Google Drive para o usuário com 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

Se o usuário tiver essa licença, será uma resposta bem-sucedida e um código de status HTTP 200. Para conferir os possíveis códigos de erro, consulte a seção Códigos de erro da API. Se bem-sucedida, a resposta retornará a licença do usuário no formato JSON.

Resposta 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"
}

Para mais informações, consulte a página de referência get method de LicenseAssignments.

Excluir uma licença

Para cancelar a atribuição de uma licença de um usuário, use a seguinte solicitação HTTP DELETE. Inclua o cabeçalho Authorization conforme descrito em Como autorizar solicitações. Para IDs de produtos e SKUs, consulte os Produtos e SKUs disponíveis da API:

DELETE https://www.googleapis.com/apps/licensing/v1/product/productId/sku/skuId/user/userId

Neste exemplo, a licença do Google-Drive-storage-50 GB não é atribuída ao usuário cujo 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

Uma resposta bem-sucedida retorna um código de status HTTP 200. Para conferir os possíveis códigos de erro, consulte a seção Códigos de erro da API.

Para mais informações, consulte a página de referência método de exclusão de LicenseAssignments.

Códigos de erro

Se a solicitação não for bem-sucedida, a resposta terá uma breve explicação do erro:

Código do erro Descrição
400 Solicitação inválida - E-mail do usuário inválido.
400 Solicitação inválida: SKU/produto não existe.
401 O ator não tem credenciais para chamar essa API.
404 Se o usuário não tiver essa licença, a resposta terá a mensagem "não encontrado" código de erro.
412 Uma pré-condição não foi atendida. Para mais detalhes sobre esse erro, verifique o campo message. Exemplo:
  • 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 O serviço do License Manager não está disponível.