API Enterprise License Manager: guida per gli sviluppatori

Questo documento descrive in che modo gli amministratori a livello di account e i rivenditori possono utilizzare l'API Enterprise License Manager per gestire le assegnazioni delle licenze agli utenti. Una volta abilitate le licenze SKU prodotto del tuo account e creati gli utenti, utilizza l'API Enterprise License Manager per assegnare, aggiornare, recuperare ed eliminare le licenze per gli utenti del tuo account.

In questa versione, l'API Enterprise License Manager viene utilizzata dagli amministratori dell'account e dei rivenditori. Anche gli amministratori delegati con il privilegio License Management possono utilizzare l'API Enterprise License Manager.

Nota:l'API Enterprise License Manager viene utilizzata da un cliente Google. Per informazioni su come gli sviluppatori di applicazioni di terze parti di Google gestiscono le licenze, consulta l'API Google Workspace Marketplace.

L'API Enterprise License Manager si basa sull'approccio di progettazione RESTful (Representational State Transfer) per i servizi web.

Gestione delle licenze

Assegna una licenza

In precedenza, il cliente o il rivenditore ha ordinato licenze per i prodotti Google e ha creato l'utente. Per assegnare una di queste licenze di prodotto a questo utente, utilizza la seguente richiesta HTTP POST. Includi l'intestazione Authorization come descritto in Autorizzazione delle richieste. Per gli ID prodotto e SKU, consulta i prodotti e gli SKU disponibili dell'API:

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

Nota:a un utente è possibile assegnare licenze per un'ampia gamma di prodotti Google diversi. Tuttavia, a un utente viene assegnata una sola licenza SKU per prodotto alla volta. Tramite l'API, la licenza SKU di un utente può essere riassegnata a una licenza SKU diversa all'interno del prodotto.

Questo esempio assegna lo SKU Google-Drive-storage-20GB all'utente il cui indirizzo email principale è alex@example.com:

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

Il corpo della richiesta JSON:

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

Una risposta riuscita restituisce un codice di stato HTTP 200. Per i possibili codici di errore, consulta la sezione Codici di errore dell'API. In caso di esito positivo, la risposta restituisce lo stato dell'assegnazione delle licenze in formato di dati JSON.

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

Per ulteriori informazioni, consulta la pagina di riferimento del metodo insert di licenseAssignments.

Riassegnare lo SKU di un prodotto di un utente con uno SKU diverso nello stesso prodotto

Per riassegnare la licenza di un utente a un nuovo SKU della licenza all'interno dello stesso prodotto, utilizza la seguente richiesta HTTP PUT. L'API supporta anche la sintassi delle patch. Includi l'intestazione Authorization come descritto in Autorizzazione delle richieste. Per gli ID prodotto e SKU, consulta i prodotti e gli SKU disponibili dell'API:

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

In questo esempio, l'attuale SKU Google-Drive-storage-20GB viene aggiornato con Google-Drive-storage-50GB. Lo SKU della licenza attuale si trova nell'URI della richiesta e lo SKU della nuova licenza si trova nel corpo della richiesta:

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

Il corpo della richiesta JSON contiene :

{
  "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 risposta riuscita restituisce un codice di stato HTTP 200. Per i possibili codici di errore, consulta la sezione Codici di errore dell'API. Se l'esito è positivo, la risposta restituisce lo stato di assegnazione delle licenze nel formato dati JSON.

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

Per ulteriori informazioni, consulta le pagine di riferimento del metodo di aggiornamento e del metodo di patch di licenseAssignments.

Recuperare tutti gli utenti a cui sono state assegnate licenze per un prodotto specifico

Per ottenere tutte le licenze utente per un prodotto specifico, utilizza la seguente richiesta HTTP GET. Includi l'intestazione Authorization come descritto in Autorizzazione delle richieste. La stringa di query customerId è il nome di dominio principale del cliente. La stringa di query maxResults determina il numero di voci relative alle licenze utente restituite nella risposta dell'API:

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

Per gli ID prodotto e SKU, consulta i prodotti e gli SKU disponibili dell'API.

Questo esempio elenca la prima pagina di risultati per tutti gli utenti del dominio example.com a cui sono state assegnate licenze per il prodotto di spazio di archiviazione di Google Drive:

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

Una risposta riuscita restituisce un codice di stato HTTP 200. Per possibili codici di errore, consulta la sezione Codici di errore dell'API. Se l'esito è positivo, la risposta restituisce l'elenco di licenze in formato JSON.

Risposta 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"
  },
  ...
}

Per ulteriori informazioni, consulta la pagina di riferimento del metodo listForProduct di licenseAssignments.

Recuperare tutti gli utenti a cui sono state assegnate licenze per uno SKU del prodotto specifico

Per ottenere un elenco di tutti gli utenti con licenze per uno SKU di prodotto specifico, utilizza la seguente richiesta HTTP GET. Includi l'intestazione Authorization come descritto in Autorizzazione delle richieste. La stringa di query customerId è il nome di dominio principale del cliente. La stringa di query maxResults determina quante voci utente vengono restituite nella risposta dell'API:

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

Per gli ID prodotto e SKU, consulta i prodotti e gli SKU disponibili dell'API.

Questo esempio restituisce la prima pagina di tutti gli utenti del dominio example.com a cui è stata assegnata una licenza per lo SKU Google-Drive-storage-200GB. La risposta elenca due voci utente per pagina:

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

Una risposta riuscita restituisce un codice di stato HTTP 200. Per i possibili codici di errore, consulta la sezione Codici di errore dell'API. In caso di esito positivo, la risposta restituisce l'elenco delle licenze in formato JSON.

Risposta 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"
    },
    ...
  }

Per ulteriori informazioni, consulta la pagina di riferimento del metodo listForProductAndSku di licenseAssignments.

Recuperare la licenza di un utente specifico in base allo SKU del prodotto

Per ottenere la licenza di un utente specifico in base allo SKU del prodotto, utilizza la seguente richiesta HTTP GET. Includi l'intestazione Authorization come descritto in Autorizzazione delle richieste. Per gli ID prodotto e SKU, consulta i prodotti e gli SKU disponibili dell'API:

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

Questo esempio recupera lo SKU del prodotto di spazio di archiviazione di Google Drive da 50 GB per l'utente il cui 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 l'utente dispone di questa licenza, la risposta è positiva e viene visualizzato un 200 codice di stato HTTP. Per possibili codici di errore, consulta la sezione Codici di errore dell'API. Se l'esito è positivo, la risposta restituisce la licenza dell'utente in formato JSON.

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

Per ulteriori informazioni, consulta la pagina di riferimento del metodo get licenseAssignments.

Eliminare una licenza

Per annullare l'assegnazione di una licenza a un utente, utilizza la seguente richiesta HTTP DELETE. Includi l'intestazione Authorization come descritto in Autorizzazione delle richieste. Per gli ID prodotto e SKU, consulta i prodotti e gli SKU disponibili dell'API:

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

In questo esempio, l'assegnazione della licenza Google-Drive-storage-50 GB è stata annullata dall'utente il cui 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

Una risposta riuscita restituisce un codice di stato HTTP 200. Per i possibili codici di errore, consulta la sezione Codici di errore dell'API.

Per ulteriori informazioni, consulta la pagina di riferimento del metodo di eliminazione licenseAssignments.

Codici di errore

Se la richiesta non va a buon fine, la risposta contiene una breve spiegazione dell'errore:

Codice di errore Descrizione
400 Richiesta non valida: indirizzo email utente non valido.
400 Richiesta non valida: lo SKU/il prodotto non esiste.
401 L'attore non dispone delle credenziali per chiamare questa API.
404 Se l'utente non dispone di questa licenza, la risposta avrà un codice di errore "non trovato".
412 Una precondizione non è stata soddisfatta. Per maggiori dettagli su questo errore, controlla il campo message. Ad esempio:
  • 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 Il servizio License Manager non è disponibile.