API Enterprise License Manager: guide du développeur

Ce document explique comment les administrateurs au niveau du compte et les revendeurs peuvent utiliser l'API Enterprise License Manager pour gérer l'attribution des licences aux utilisateurs. Une fois que les licences des SKU de produits de votre compte ont été activées et que vos utilisateurs ont été créés, utilisez l'API Enterprise License Manager pour attribuer, mettre à jour, récupérer et supprimer des licences pour les utilisateurs de votre compte.

Dans cette version, l'API Enterprise License Manager est utilisée par les administrateurs de comptes et de revendeurs. Les administrateurs délégués disposant du droit License Management peuvent également utiliser l'API Enterprise License Manager.

Remarque:L'API Enterprise License Manager est utilisée par un client Google. Pour savoir comment les développeurs d'applications tierces Google gèrent les licences, consultez l'API Google Workspace Marketplace.

L'API Enterprise License Manager est basée sur l'approche de conception Representational State Transfer (RESTful) pour les services Web.

Gérer les licences

Attribuer une licence

Auparavant, le client ou le revendeur a commandé des licences de produits Google et a créé l'utilisateur. Pour attribuer l'une de ces licences de produit à cet utilisateur, utilisez la requête HTTP POST suivante. Incluez l'en-tête Authorization comme décrit dans la section Autoriser des requêtes. Pour connaître les ID de produit et de SKU, consultez les produits et SKU disponibles dans l'API:

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

Remarque:Un utilisateur peut se voir attribuer des licences pour un large éventail de produits Google. Toutefois, un utilisateur ne peut être associé qu'à une seule licence SKU par produit à la fois. L'API permet de réattribuer la licence SKU d'un utilisateur à une autre licence du produit.

Cet exemple attribue le SKU Google-Drive-storage-20GB à l'utilisateur dont l'adresse e-mail principale est alex@example.com:

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

Corps de la requête JSON:

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

Une réponse réussie renvoie un code d'état HTTP 200. Pour connaître les codes d'erreur possibles, consultez les codes d'erreur de l'API. Si la requête aboutit, la réponse renvoie l'état de l'attribution de licence au format de données JSON.

Réponse 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"
}

Pour en savoir plus, consultez la page de référence sur la méthode insert de licenseAssignments.

Réattribuer un SKU de produit à un utilisateur avec un SKU différent dans le même produit

Pour réattribuer la licence d'un utilisateur à un nouveau SKU de licence dans le même produit, utilisez la requête HTTP PUT suivante. L'API est également compatible avec la syntaxe de correctif. Incluez l'en-tête Authorization comme décrit dans la section Autoriser les requêtes. Pour connaître les ID de produit et de SKU, consultez les produits et SKU disponibles dans l'API:

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

Cet exemple remplace le SKU Google-Drive-storage-20GB par Google-Drive-storage-50GB. Le SKU de la licence actuelle figure dans l'URI de la requête, et le SKU de la nouvelle licence figure dans le corps de la requête:

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

Le corps de la requête JSON contient les éléments suivants :

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

Une réponse réussie renvoie un code d'état HTTP 200. Pour connaître les codes d'erreur possibles, consultez la section Codes d'erreur de l'API. Si la requête aboutit, la réponse renvoie l'état de l'attribution de licence au format de données JSON.

Réponse 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"
}

Pour en savoir plus, consultez les pages de référence sur la méthode update et la méthode patch de licenseAssignments.

Récupérer tous les utilisateurs auxquels des licences ont été attribuées pour un produit spécifique

Pour obtenir toutes les licences utilisateur d'un produit spécifique, utilisez la requête HTTP GET suivante. Incluez l'en-tête Authorization comme décrit dans la section Autoriser les requêtes. La chaîne de requête customerId correspond au nom de domaine principal du client. La chaîne de requête maxResults détermine le nombre d'entrées de licence utilisateur renvoyées dans la réponse de l'API:

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

Pour connaître les ID de produit et de SKU, consultez les produits et SKU disponibles dans l'API.

Cet exemple liste la première page de résultats pour tous les utilisateurs du domaine example.com auxquels des licences ont été attribuées pour le produit Google-Drive-storage:

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

Une réponse réussie renvoie un code d'état HTTP 200. Pour connaître les codes d'erreur possibles, consultez les codes d'erreur de l'API. Si la requête aboutit, la réponse renvoie la liste des licences au format JSON.

Réponse 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"
  },
  ...
}

Pour en savoir plus, consultez la page de référence de la méthode listForProduct de licenseAssignments.

Récupérer tous les utilisateurs disposant d'une licence pour un SKU de produit spécifique

Pour obtenir la liste de tous les utilisateurs disposant de licences pour un SKU de produit spécifique, utilisez la requête HTTP GET suivante. Incluez l'en-tête Authorization comme décrit dans la section Autoriser les requêtes. La chaîne de requête customerId correspond au nom de domaine principal du client. La chaîne de requête maxResults détermine le nombre d'entrées utilisateur renvoyées dans la réponse de l'API:

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

Pour obtenir les ID des produits et des SKU, consultez la page Produits et SKU disponibles dans l'API.

Cet exemple renvoie la première page de tous les utilisateurs du domaine example.com auxquels une licence a été attribuée pour le SKU Google-Drive-storage-200GB. La réponse liste deux entrées utilisateur par page:

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

Une réponse positive renvoie un code d'état HTTP 200. Pour connaître les codes d'erreur possibles, consultez la section Codes d'erreur de l'API. Si la requête aboutit, la réponse renvoie la liste des licences au format JSON.

Réponse 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"
    },
    ...
  }

Pour en savoir plus, consultez la page de référence de la méthode listForProductAndSku de licenseAssignments.

Récupérer la licence d'un utilisateur spécifique par SKU de produit

Pour obtenir la licence d'un utilisateur spécifique par SKU de produit, utilisez la requête HTTP GET suivante. Incluez l'en-tête Authorization comme décrit dans la section Autoriser les requêtes. Pour connaître les ID de produit et de SKU, consultez les produits et SKU disponibles dans l'API:

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

Cet exemple obtient le SKU du produit de stockage Google Drive de 50 Go pour l'utilisateur dont l'userId est alex@example.com:

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

Si l'utilisateur possède cette licence, il s'agit d'une réponse positive et d'un code d'état HTTP 200. Pour connaître les codes d'erreur possibles, consultez les codes d'erreur de l'API. Si la requête aboutit, la réponse renvoie la licence de l'utilisateur au format JSON.

Réponse 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"
}

Pour en savoir plus, consultez la page de référence de la méthode get pour LicenseAssignments.

Supprimer une licence

Pour retirer une licence à un utilisateur, utilisez la requête HTTP DELETE suivante. Incluez l'en-tête Authorization comme décrit dans la section Autoriser les requêtes. Pour connaître les ID de produit et de SKU, consultez les produits et SKU disponibles dans l'API:

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

Dans cet exemple, la licence Google-Drive-storage-50GB est dissociée de l'utilisateur dont l'userId est alex@example.com:

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

Une réponse réussie renvoie un code d'état HTTP 200. Pour connaître les codes d'erreur possibles, consultez la section Codes d'erreur de l'API.

Pour en savoir plus, consultez la page de référence sur la méthode delete de licenseAssignments.

Codes d'erreur

Si la requête échoue, la réponse contient une brève explication de l'erreur:

Code d'erreur Description
400 Requête incorrecte : adresse e-mail de l'utilisateur non valide.
400 Requête incorrecte : l'article/le SKU n'existe pas.
401 L'acteur ne dispose pas des identifiants nécessaires pour appeler cette API.
404 Si l'utilisateur ne dispose pas de cette licence, la réponse contient un code d'erreur "introuvable".
412 Une condition préalable n'a pas été remplie. Pour en savoir plus sur cette erreur, consultez le champ message. Exemple :
  • 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 Le service License Manager n'est pas disponible.