1{
2  "auth": {
3    "oauth2": {
4      "scopes": {
5        "https://www.googleapis.com/auth/apps.licensing": {
6          "description": "View and manage G Suite licenses for your domain"
7        }
8      }
9    }
10  },
11  "basePath": "",
12  "baseUrl": "https://licensing.googleapis.com/",
13  "batchPath": "batch",
14  "description": "The Google Enterprise License Manager API's allows you to license apps for all the users of a domain managed by you.",
15  "discoveryVersion": "v1",
16  "documentationLink": "https://developers.google.com/admin-sdk/licensing/",
17  "fullyEncodeReservedExpansion": true,
18  "icons": {
19    "x16": "http://www.google.com/images/icons/product/search-16.gif",
20    "x32": "http://www.google.com/images/icons/product/search-32.gif"
21  },
22  "id": "licensing:v1",
23  "kind": "discovery#restDescription",
24  "mtlsRootUrl": "https://licensing.mtls.googleapis.com/",
25  "name": "licensing",
26  "ownerDomain": "google.com",
27  "ownerName": "Google",
28  "parameters": {
29    "$.xgafv": {
30      "description": "V1 error format.",
31      "enum": [
32        "1",
33        "2"
34      ],
35      "enumDescriptions": [
36        "v1 error format",
37        "v2 error format"
38      ],
39      "location": "query",
40      "type": "string"
41    },
42    "access_token": {
43      "description": "OAuth access token.",
44      "location": "query",
45      "type": "string"
46    },
47    "alt": {
48      "default": "json",
49      "description": "Data format for response.",
50      "enum": [
51        "json",
52        "media",
53        "proto"
54      ],
55      "enumDescriptions": [
56        "Responses with Content-Type of application/json",
57        "Media download with context-dependent Content-Type",
58        "Responses with Content-Type of application/x-protobuf"
59      ],
60      "location": "query",
61      "type": "string"
62    },
63    "callback": {
64      "description": "JSONP",
65      "location": "query",
66      "type": "string"
67    },
68    "fields": {
69      "description": "Selector specifying which fields to include in a partial response.",
70      "location": "query",
71      "type": "string"
72    },
73    "key": {
74      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
75      "location": "query",
76      "type": "string"
77    },
78    "oauth_token": {
79      "description": "OAuth 2.0 token for the current user.",
80      "location": "query",
81      "type": "string"
82    },
83    "prettyPrint": {
84      "default": "true",
85      "description": "Returns response with indentations and line breaks.",
86      "location": "query",
87      "type": "boolean"
88    },
89    "quotaUser": {
90      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
91      "location": "query",
92      "type": "string"
93    },
94    "uploadType": {
95      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
96      "location": "query",
97      "type": "string"
98    },
99    "upload_protocol": {
100      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
101      "location": "query",
102      "type": "string"
103    }
104  },
105  "protocol": "rest",
106  "resources": {
107    "licenseAssignments": {
108      "methods": {
109        "delete": {
110          "description": "Revoke a license.",
111          "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}",
112          "httpMethod": "DELETE",
113          "id": "licensing.licenseAssignments.delete",
114          "parameterOrder": [
115            "productId",
116            "skuId",
117            "userId"
118          ],
119          "parameters": {
120            "productId": {
121              "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.",
122              "location": "path",
123              "required": true,
124              "type": "string"
125            },
126            "skuId": {
127              "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.",
128              "location": "path",
129              "required": true,
130              "type": "string"
131            },
132            "userId": {
133              "description": "The user's current primary email address. If the user's email address changes, use the new email address in your API requests. Since a `userId` is subject to change, do not use a `userId` value as a key for persistent data. This key could break if the current user's email address changes. If the `userId` is suspended, the license status changes.",
134              "location": "path",
135              "required": true,
136              "type": "string"
137            }
138          },
139          "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}",
140          "response": {
141            "$ref": "Empty"
142          },
143          "scopes": [
144            "https://www.googleapis.com/auth/apps.licensing"
145          ]
146        },
147        "get": {
148          "description": "Get a specific user's license by product SKU.",
149          "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}",
150          "httpMethod": "GET",
151          "id": "licensing.licenseAssignments.get",
152          "parameterOrder": [
153            "productId",
154            "skuId",
155            "userId"
156          ],
157          "parameters": {
158            "productId": {
159              "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.",
160              "location": "path",
161              "required": true,
162              "type": "string"
163            },
164            "skuId": {
165              "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.",
166              "location": "path",
167              "required": true,
168              "type": "string"
169            },
170            "userId": {
171              "description": "The user's current primary email address. If the user's email address changes, use the new email address in your API requests. Since a `userId` is subject to change, do not use a `userId` value as a key for persistent data. This key could break if the current user's email address changes. If the `userId` is suspended, the license status changes.",
172              "location": "path",
173              "required": true,
174              "type": "string"
175            }
176          },
177          "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}",
178          "response": {
179            "$ref": "LicenseAssignment"
180          },
181          "scopes": [
182            "https://www.googleapis.com/auth/apps.licensing"
183          ]
184        },
185        "insert": {
186          "description": "Assign a license.",
187          "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user",
188          "httpMethod": "POST",
189          "id": "licensing.licenseAssignments.insert",
190          "parameterOrder": [
191            "productId",
192            "skuId"
193          ],
194          "parameters": {
195            "productId": {
196              "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.",
197              "location": "path",
198              "required": true,
199              "type": "string"
200            },
201            "skuId": {
202              "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.",
203              "location": "path",
204              "required": true,
205              "type": "string"
206            }
207          },
208          "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user",
209          "request": {
210            "$ref": "LicenseAssignmentInsert"
211          },
212          "response": {
213            "$ref": "LicenseAssignment"
214          },
215          "scopes": [
216            "https://www.googleapis.com/auth/apps.licensing"
217          ]
218        },
219        "listForProduct": {
220          "description": "List all users assigned licenses for a specific product SKU.",
221          "flatPath": "apps/licensing/v1/product/{productId}/users",
222          "httpMethod": "GET",
223          "id": "licensing.licenseAssignments.listForProduct",
224          "parameterOrder": [
225            "productId",
226            "customerId"
227          ],
228          "parameters": {
229            "customerId": {
230              "description": "Customer's `customerId`. A previous version of this API accepted the primary domain name as a value for this field. If the customer is suspended, the server returns an error.",
231              "location": "query",
232              "required": true,
233              "type": "string"
234            },
235            "maxResults": {
236              "default": "100",
237              "description": "The `maxResults` query string determines how many entries are returned on each page of a large response. This is an optional parameter. The value must be a positive number.",
238              "format": "uint32",
239              "location": "query",
240              "maximum": "1000",
241              "minimum": "1",
242              "type": "integer"
243            },
244            "pageToken": {
245              "default": "",
246              "description": "Token to fetch the next page of data. The `maxResults` query string is related to the `pageToken` since `maxResults` determines how many entries are returned on each page. This is an optional query string. If not specified, the server returns the first page.",
247              "location": "query",
248              "type": "string"
249            },
250            "productId": {
251              "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.",
252              "location": "path",
253              "required": true,
254              "type": "string"
255            }
256          },
257          "path": "apps/licensing/v1/product/{productId}/users",
258          "response": {
259            "$ref": "LicenseAssignmentList"
260          },
261          "scopes": [
262            "https://www.googleapis.com/auth/apps.licensing"
263          ]
264        },
265        "listForProductAndSku": {
266          "description": "List all users assigned licenses for a specific product SKU.",
267          "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/users",
268          "httpMethod": "GET",
269          "id": "licensing.licenseAssignments.listForProductAndSku",
270          "parameterOrder": [
271            "productId",
272            "skuId",
273            "customerId"
274          ],
275          "parameters": {
276            "customerId": {
277              "description": "Customer's `customerId`. A previous version of this API accepted the primary domain name as a value for this field. If the customer is suspended, the server returns an error.",
278              "location": "query",
279              "required": true,
280              "type": "string"
281            },
282            "maxResults": {
283              "default": "100",
284              "description": "The `maxResults` query string determines how many entries are returned on each page of a large response. This is an optional parameter. The value must be a positive number.",
285              "format": "uint32",
286              "location": "query",
287              "maximum": "1000",
288              "minimum": "1",
289              "type": "integer"
290            },
291            "pageToken": {
292              "default": "",
293              "description": "Token to fetch the next page of data. The `maxResults` query string is related to the `pageToken` since `maxResults` determines how many entries are returned on each page. This is an optional query string. If not specified, the server returns the first page.",
294              "location": "query",
295              "type": "string"
296            },
297            "productId": {
298              "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.",
299              "location": "path",
300              "required": true,
301              "type": "string"
302            },
303            "skuId": {
304              "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.",
305              "location": "path",
306              "required": true,
307              "type": "string"
308            }
309          },
310          "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/users",
311          "response": {
312            "$ref": "LicenseAssignmentList"
313          },
314          "scopes": [
315            "https://www.googleapis.com/auth/apps.licensing"
316          ]
317        },
318        "patch": {
319          "description": "Reassign a user's product SKU with a different SKU in the same product. This method supports patch semantics.",
320          "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}",
321          "httpMethod": "PATCH",
322          "id": "licensing.licenseAssignments.patch",
323          "parameterOrder": [
324            "productId",
325            "skuId",
326            "userId"
327          ],
328          "parameters": {
329            "productId": {
330              "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.",
331              "location": "path",
332              "required": true,
333              "type": "string"
334            },
335            "skuId": {
336              "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.",
337              "location": "path",
338              "required": true,
339              "type": "string"
340            },
341            "userId": {
342              "description": "The user's current primary email address. If the user's email address changes, use the new email address in your API requests. Since a `userId` is subject to change, do not use a `userId` value as a key for persistent data. This key could break if the current user's email address changes. If the `userId` is suspended, the license status changes.",
343              "location": "path",
344              "required": true,
345              "type": "string"
346            }
347          },
348          "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}",
349          "request": {
350            "$ref": "LicenseAssignment"
351          },
352          "response": {
353            "$ref": "LicenseAssignment"
354          },
355          "scopes": [
356            "https://www.googleapis.com/auth/apps.licensing"
357          ]
358        },
359        "update": {
360          "description": "Reassign a user's product SKU with a different SKU in the same product.",
361          "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}",
362          "httpMethod": "PUT",
363          "id": "licensing.licenseAssignments.update",
364          "parameterOrder": [
365            "productId",
366            "skuId",
367            "userId"
368          ],
369          "parameters": {
370            "productId": {
371              "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.",
372              "location": "path",
373              "required": true,
374              "type": "string"
375            },
376            "skuId": {
377              "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.",
378              "location": "path",
379              "required": true,
380              "type": "string"
381            },
382            "userId": {
383              "description": "The user's current primary email address. If the user's email address changes, use the new email address in your API requests. Since a `userId` is subject to change, do not use a `userId` value as a key for persistent data. This key could break if the current user's email address changes. If the `userId` is suspended, the license status changes.",
384              "location": "path",
385              "required": true,
386              "type": "string"
387            }
388          },
389          "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}",
390          "request": {
391            "$ref": "LicenseAssignment"
392          },
393          "response": {
394            "$ref": "LicenseAssignment"
395          },
396          "scopes": [
397            "https://www.googleapis.com/auth/apps.licensing"
398          ]
399        }
400      }
401    }
402  },
403  "revision": "20211220",
404  "rootUrl": "https://licensing.googleapis.com/",
405  "schemas": {
406    "Empty": {
407      "description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.",
408      "id": "Empty",
409      "properties": {},
410      "type": "object"
411    },
412    "LicenseAssignment": {
413      "description": "Representation of a license assignment.",
414      "id": "LicenseAssignment",
415      "properties": {
416        "etags": {
417          "description": "ETag of the resource.",
418          "type": "string"
419        },
420        "kind": {
421          "default": "licensing#licenseAssignment",
422          "description": "Identifies the resource as a LicenseAssignment, which is `licensing#licenseAssignment`.",
423          "type": "string"
424        },
425        "productId": {
426          "annotations": {
427            "required": [
428              "licensing.licenseAssignments.update"
429            ]
430          },
431          "description": "A product's unique identifier. For more information about products in this version of the API, see Product and SKU IDs.",
432          "type": "string"
433        },
434        "productName": {
435          "description": "Display Name of the product.",
436          "type": "string"
437        },
438        "selfLink": {
439          "description": "Link to this page.",
440          "type": "string"
441        },
442        "skuId": {
443          "annotations": {
444            "required": [
445              "licensing.licenseAssignments.update"
446            ]
447          },
448          "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.",
449          "type": "string"
450        },
451        "skuName": {
452          "description": "Display Name of the sku of the product.",
453          "type": "string"
454        },
455        "userId": {
456          "annotations": {
457            "required": [
458              "licensing.licenseAssignments.update"
459            ]
460          },
461          "description": "The user's current primary email address. If the user's email address changes, use the new email address in your API requests. Since a `userId` is subject to change, do not use a `userId` value as a key for persistent data. This key could break if the current user's email address changes. If the `userId` is suspended, the license status changes.",
462          "type": "string"
463        }
464      },
465      "type": "object"
466    },
467    "LicenseAssignmentInsert": {
468      "description": "Representation of a license assignment.",
469      "id": "LicenseAssignmentInsert",
470      "properties": {
471        "userId": {
472          "annotations": {
473            "required": [
474              "licensing.licenseAssignments.insert"
475            ]
476          },
477          "description": "Email id of the user",
478          "type": "string"
479        }
480      },
481      "type": "object"
482    },
483    "LicenseAssignmentList": {
484      "id": "LicenseAssignmentList",
485      "properties": {
486        "etag": {
487          "description": "ETag of the resource.",
488          "type": "string"
489        },
490        "items": {
491          "description": "The LicenseAssignments in this page of results.",
492          "items": {
493            "$ref": "LicenseAssignment"
494          },
495          "type": "array"
496        },
497        "kind": {
498          "default": "licensing#licenseAssignmentList",
499          "description": "Identifies the resource as a collection of LicenseAssignments.",
500          "type": "string"
501        },
502        "nextPageToken": {
503          "description": "The token that you must submit in a subsequent request to retrieve additional license results matching your query parameters. The `maxResults` query string is related to the `nextPageToken` since `maxResults` determines how many entries are returned on each next page.",
504          "type": "string"
505        }
506      },
507      "type": "object"
508    }
509  },
510  "servicePath": "",
511  "title": "Enterprise License Manager API",
512  "version": "v1"
513}