API Enterprise License Manager: guide du développeur

Ce document explique comment les administrateurs de compte et de revendeur peuvent utiliser l'API Enterprise License Manager pour gérer l'attribution de licences aux utilisateurs. Une fois que les licences des 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 compte et de revendeur. 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 en savoir plus sur la façon dont les développeurs d'applications tierces Google gèrent les licences, consultez la page sur 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

Avant cette opération, le client ou le revendeur a commandé des licences de produits Google et a créé l'utilisateur. Pour attribuer l'une de ces licences produit à cet utilisateur, utilisez la requête HTTP POST suivante. Incluez l'en-tête Authorization comme décrit dans la section Autoriser les requêtes. Pour obtenir les identifiants des produits et des SKU, consultez la liste des 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 une large gamme de produits Google. Toutefois, un utilisateur ne se voit attribuer qu'une seule licence SKU à la fois par produit. Grâce à l'API, il est possible de réattribuer une licence SKU d'un utilisateur à une autre licence SKU au sein du produit.

Cet exemple attribue le SKU Google-Drive-storage-20 Go à 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",
}

Les appels réussis renvoient 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 d'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 d'insertion de licenceAssignments.

Réattribuer le SKU d'un utilisateur à un autre SKU dans le même produit

Pour réattribuer la licence d'un utilisateur à un nouveau SKU pour le même produit, utilisez la requête HTTP PUT suivante. L'API accepte également la syntaxe "patch". Incluez l'en-tête Authorization comme décrit dans la section Autoriser les requêtes. Pour obtenir les identifiants des produits et des SKU, consultez la liste des 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

Dans cet exemple, le SKU Google-Drive-storage-20 Go actuel est remplacé par Google-Drive-storage-50 Go. Le SKU actuel se trouve dans l'URI de la requête et le nouveau SKU 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 comporte 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"
}

Les appels réussis renvoient 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 d'attribution de la 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 de la méthode de mise à jour et de la méthode patch de LicenseAssignments.

Récupérer tous les utilisateurs disposant de licences 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 obtenir les identifiants des produits et des SKU, consultez la liste des produits et codes SKU disponibles dans l'API.

Dans cet exemple, la première page de résultats s'affiche pour tous les utilisateurs du domaine example.com disposant de licences pour le produit de stockage Google Drive:

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

Les appels réussis renvoient 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" : "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 de licences 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 identifiants des produits et des SKU, consultez la liste des 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-200 Go. La réponse répertorie 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

Les appels réussis renvoient 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 plus d'informations, consultez la page de référence de la méthode numberForProductAndSku dans la section "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 obtenir les identifiants des produits et des SKU, consultez la liste des produits et SKU disponibles dans l'API:

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

Dans cet exemple, le code SKU du produit d'espace de stockage Google Drive de 50 Go est récupéré pour l'utilisateur dont le 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 dispose de cette licence, une réponse de réussite s'affiche et un code d'état HTTP 200 s'affiche. 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 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 plus d'informations, consultez la page de référence de la méthode get concernant la fonctionnalité 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 obtenir les identifiants des produits et des SKU, consultez la liste des 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-50 Go n'est plus attribuée à l'utilisateur dont le 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

Les appels réussis renvoient 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 de suppression de licenceAssignments.

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 - L'adresse e-mail de l'utilisateur n'est pas valide.
400 Requête incorrecte : le SKU/produit n'existe pas.
401 L'acteur ne dispose d'aucun identifiant pour appeler cette API.
404 Si l'utilisateur ne possède pas cette licence, la réponse affiche le code d'erreur "Introuvable".
412 Aucune condition préalable n'a été remplie. Pour en savoir plus sur cette erreur, consultez le champ message. Par 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 du gestionnaire de licences n'est pas disponible.