API Enterprise License Manager: guia do desenvolvedor

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

Nesta versão, a API Enterprise License Manager é usada por administradores de contas e revendedores. Os administradores delegados 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. Para saber mais sobre como os desenvolvedores de aplicativos terceirizados do Google gerenciam licenças, consulte a API Google Workspace Marketplace.

A API Enterprise License Manager é baseada na abordagem de design Transferência de estado representacional (RESTful) para serviços da Web.

Como gerenciar licenças

Atribuir uma licença

Antes dessa operação, o cliente ou revendedor encomendou licenças de produtos do Google e criou o usuário. Para atribuir uma destas licenças de produto a este 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 da API:

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

Observação:o usuário pode receber licenças de vários produtos do Google. No entanto, um usuário só é atribuído uma licença de SKU por produto. Quando você usa a API, a licença de SKU de um usuário pode ser reatribuída a outra licença de SKU no 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 possíveis códigos de erro, consulte os Códigos de erro da API. Se for bem-sucedida, a resposta 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 do método "insert method" da "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 uma nova SKU de licença no mesmo produto, use a solicitação HTTP PUT a seguir. A API também oferece suporte à 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 da 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-20GB com o Google-Drive-storage-50GB. A SKU da licença atual está no URI da solicitação, e a nova 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 possíveis códigos de erro, consulte os Códigos de erro da API. Se for bem-sucedida, a resposta retornará o status da 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 de método de atualização e método de patch de "LicenseAssignments".

Recuperar licenças de todos os usuários para um produto específico

Para ver 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 do 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 da API.

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

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 possíveis códigos de erro, consulte os Códigos de erro da API. Se for 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 do método listForProduct de LicenseAssignments.

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

Para ver uma lista de todos os usuários com licenças de um SKU específico do produto, 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 os Produtos e SKUs disponíveis da API

Este exemplo retorna a primeira página de todos os usuários no domínio example.com com uma licença para a SKU Google-Drive-storage-200GB. A resposta lista duas entradas do 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 possíveis códigos de erro, consulte os Códigos de erro da API. Se for 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 listListProductProductSku de "LicenseAssignments".

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

Para conseguir 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 recebe 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, é uma resposta bem-sucedida e um código de status HTTP 200. Para possíveis códigos de erro, consulte os Códigos de erro da API. Se for 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 do método get da 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-50GB não está mais atribuída ao usuário com 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 possíveis códigos de erro, consulte os Códigos de erro da API.

Para mais informações, consulte a página de referência do método delete da 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: o e-mail do usuário não é vá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á o código de erro "não encontrado".
412 Uma condição prévia não foi atendida. Para ver detalhes sobre esse erro, consulte o campo message. Por 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 License Manager não está disponível.