API Enterprise License Manager: guia para desenvolvedores

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

Nesta versão, a API Enterprise License Manager é usada pelos administradores de contas e de 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. Saiba como os desenvolvedores de apps de terceiros do Google gerenciam 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 dessa operação, o cliente ou revendedor comprou licenças de produtos do Google e criou o usuário. Para atribuir uma dessas 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 códigos de produto e SKU, 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, um usuário só recebe uma licença de SKU por produto de cada vez. Ao usar a API, a licença do SKU de um usuário pode ser reatribuída a outra licença do SKU no produto.

Este exemplo atribui a SKU Google-Drive-storage-20 GB ao usuário cujo 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

Corpo da solicitação JSON:

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

Se a resposta for bem-sucedida, será retornado um código de status HTTP 200. Confira os possíveis códigos de erro na seção Códigos de erro da API. Se 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 insert method do 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 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 códigos de produto e SKU, 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 atual SKU do Google-Drive-storage-20 GB com o Google-Drive-storage-50 GB. 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"
}

Se a resposta for bem-sucedida, será retornado um código de status HTTP 200. Confira os possíveis códigos de erro na seção 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 obter mais informações, consulte as páginas de referência método de atualização e método de patch do 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 códigos de produto e SKU, consulte os Produtos e SKUs disponíveis da API.

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

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

Se a resposta for bem-sucedida, será retornado um código de status HTTP 200. Confira os possíveis códigos de erro na seção 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 do LicenseAssignments.

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

Para consultar uma lista de todos os usuários com licenças de uma SKU de produto específica, 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 do 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 códigos de produto e SKU, consulte os Produtos e SKUs disponíveis na API

Este exemplo retorna a primeira página de todos os usuários no domínio example.com que receberam uma licença para a 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

Se a resposta for bem-sucedida, será retornado um código de status HTTP 200. Confira os possíveis códigos de erro na seção 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 listForProductAndSku do 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 códigos de produto e SKU, consulte os Produtos e SKUs disponíveis na 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 de armazenamento do Google Drive para o usuário com userId como 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, a resposta será bem-sucedida e um código de status HTTP 200. Confira os possíveis códigos de erro na seção 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" do LicenseAssignments.

Excluir uma licença

Para cancelar a atribuição de uma licença de um usuário, use a solicitação HTTP DELETE a seguir. Inclua o cabeçalho Authorization conforme descrito em Como autorizar solicitações. Para códigos de produto e SKU, consulte os Produtos e SKUs disponíveis na 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 foi atribuída ao usuário com userId como alex@example.com:

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

Se a resposta for bem-sucedida, será retornado um código de status HTTP 200. Confira os possíveis códigos de erro na seção Códigos de erro da API.

Para mais informações, consulte a página de referência do método de exclusão 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: a 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 exibirá um código de erro "não encontrado".
412 Uma pré-condição não foi atendida. Para mais detalhes sobre esse erro, consulte 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 Gerenciador de licenças não está disponível.