API de Enterprise License Manager: Guía para desarrolladores

En este documento, se describe cómo los administradores revendedores y a nivel de la cuenta pueden usar la API de Enterprise License Manager para gestionar las asignaciones de licencias de los usuarios. Una vez que se hayan habilitado las licencias de SKU del producto de tu cuenta y de que se hayan creado los usuarios, usa la API de Enterprise License Manager para asignar, actualizar, recuperar y borrar licencias para los usuarios de tu cuenta.

En esta versión, los administradores de cuentas y revendedores utilizan la API de Enterprise License Manager. Los administradores delegados con el privilegio License Management también pueden usar la API de Enterprise License Manager.

Nota: Un cliente de Google utiliza la API de Enterprise License Manager. Para obtener información sobre cómo los desarrolladores de aplicaciones de terceros de Google administran las licencias, consulta la API de Google Workspace Marketplace.

La API de Enterprise License Manager se basa en el enfoque de diseño de transferencia de estado representacional (RESTful) para servicios web.

Administra licencias

Asignar una licencia

Antes de esta operación, el cliente o revendedor pidió licencias de productos de Google y creó el usuario. Para asignar una de estas licencias de productos a este usuario, usa la siguiente solicitud HTTP POST. Incluye el encabezado Authorization como se describe en Autoriza solicitudes. Para conocer los IDs de producto y SKU, consulta los productos y SKU disponibles de la API:

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

Nota: A un usuario se le pueden asignar licencias para una amplia gama de productos diferentes de Google. Sin embargo, a un usuario se le asigna solo una licencia de SKU por producto a la vez. Cuando se usa la API, la licencia de SKU del usuario se puede reasignar a una licencia de SKU diferente dentro del producto.

En este ejemplo, se asigna el SKU de Google-Drive-storage-20GB al usuario cuya dirección de correo electrónico principal es alex@example.com:

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

El cuerpo de la solicitud JSON:

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

Una respuesta correcta muestra un código de estado HTTP 200. Para ver los posibles códigos de error, consulta los Códigos de error de la API. Si se ejecuta de forma correcta, la respuesta muestra el estado de la asignación de licencias en formato de datos JSON.

Respuesta 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 obtener más información, consulta la página de referencia del insertar método de LicenseAssignments.

Reasignar el SKU del producto de un usuario con otro SKU en el mismo producto

Para reasignar la licencia de un usuario a un SKU de licencia nuevo dentro del mismo producto, usa la siguiente solicitud HTTP PUT. La API también admite la sintaxis del parche. Incluye el encabezado Authorization como se describe en Autoriza solicitudes. Para conocer los IDs de producto y SKU, consulta los productos y SKU disponibles de la API:

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

En este ejemplo, se actualiza el SKU actual de Google-Drive-storage-20 GB por el de Google-Drive-storage-50 GB. El SKU de licencia actual se encuentra en el URI de la solicitud y el nuevo SKU de licencia está en el cuerpo de la solicitud:

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

El cuerpo de la solicitud JSON tiene los siguientes elementos :

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

Una respuesta correcta muestra un código de estado HTTP 200. Para ver los posibles códigos de error, consulta los Códigos de error de la API. Si se ejecuta correctamente, la respuesta muestra el estado de la asignación de la licencia en formato de datos JSON.

Respuesta 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 obtener más información, consulta las páginas de referencia del método de actualización y el método de parche de LicenseAssignments.

Recuperar todas las licencias asignadas de los usuarios de un producto específico

Para obtener todas las licencias de usuario de un producto específico, usa la siguiente solicitud HTTP GET. Incluye el encabezado Authorization como se describe en Autoriza solicitudes. La cadena de consulta customerId es el nombre de dominio principal del cliente. La cadena de consulta maxResults determina cuántas entradas de licencia del usuario se muestran en la respuesta de la API:

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

Para conocer los IDs de producto y SKU, consulta los productos y SKU disponibles de la API.

En este ejemplo, se muestra la primera página de resultados de todos los usuarios en las licencias asignadas al dominio example.com del producto de almacenamiento en Google Drive:

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

Una respuesta correcta muestra un código de estado HTTP 200. Para ver los posibles códigos de error, consulta los Códigos de error de la API. Si se ejecuta de forma correcta, la respuesta muestra la lista de licencias en formato JSON.

Respuesta 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 obtener más información, consulta la página de referencia del métodolistForProduct de LicenseAssignments.

Recuperar todas las licencias asignadas de los usuarios para un SKU de producto específico

Para obtener una lista de todos los usuarios con licencias de un SKU de producto específico, usa la siguiente solicitud HTTP GET. Incluye el encabezado Authorization como se describe en Autoriza solicitudes. La cadena de consulta customerId es el nombre de dominio principal del cliente. La cadena de consulta maxResults determina cuántas entradas de usuario se muestran en la respuesta de la 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 conocer los IDs de producto y SKU, consulta los productos y SKU disponibles en la API.

Este ejemplo muestra la primera página de todos los usuarios en el dominio example.com a quienes se les asignó una licencia para el SKU de Google-Drive-storage-200GB. La respuesta muestra una lista de dos entradas de usuario 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

Una respuesta correcta muestra un código de estado HTTP 200. Para ver los posibles códigos de error, consulta los Códigos de error de la API. Si se ejecuta de forma correcta, la respuesta muestra la lista de licencias en formato JSON.

Respuesta 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 obtener más información, consulta la página de referencia del método listAssignments de LicenseAssignments.

Cómo recuperar una licencia de un usuario específico por SKU de producto

Para obtener la licencia de un usuario específico por SKU del producto, usa la siguiente solicitud HTTP GET. Incluye el encabezado Authorization como se describe en Autoriza solicitudes. Para conocer los IDs de producto y SKU, consulta los productos y SKU disponibles de la API:

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

En este ejemplo, se obtiene el SKU de producto de 50 GB de almacenamiento en Google Drive para el usuario cuyo userId es 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 el usuario tiene esta licencia, es una respuesta exitosa y un código de estado HTTP 200. Para ver los posibles códigos de error, consulta los Códigos de error de la API. Si se ejecuta correctamente, la respuesta muestra la licencia del usuario en formato JSON.

Respuesta 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 obtener más información, consulta la página de referencia del método get de LicenseAssignments.

Cómo borrar una licencia

Para anular la asignación de una licencia a un usuario, usa la siguiente solicitud HTTP DELETE. Incluye el encabezado Authorization como se describe en Autoriza solicitudes. Para conocer los IDs de producto y SKU, consulta los productos y SKU disponibles de la API:

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

En este ejemplo, se anula la asignación de la licencia de Google-Drive-storage-50 GB del usuario cuya userId es alex@example.com:

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

Una respuesta correcta muestra un código de estado HTTP 200. Para ver los posibles códigos de error, consulta los Códigos de error de la API.

Para obtener más información, consulta la página de referencia del método de eliminación de LicenseAssignments.

Códigos de error

Si la solicitud no es correcta, la respuesta tiene una breve explicación del error:

Código de error Descripción
400 Solicitud incorrecta: El correo electrónico del usuario no es válido.
400 Solicitud incorrecta: El SKU o el producto no existen.
401 El actor no tiene credenciales para llamar a esta API.
404 Si el usuario no cuenta con esta licencia, la respuesta tiene un código de error de "no encontrado".
412 No se cumplió una condición previa. Para obtener detalles sobre este error, consulta el campo message. Por ejemplo:
  • 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 El servicio de administrador de licencias no está disponible.