{ "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/admin-sdk/licensing/", "id": "licensing:v1", "protocol": "rest", "name": "licensing", "schemas": { "LicenseAssignment": { "type": "object", "description": "Representation of a license assignment.", "properties": { "productId": { "type": "string", "annotations": { "required": [ "licensing.licenseAssignments.update" ] }, "description": "A product's unique identifier. For more information about products in this version of the API, see Product and SKU IDs." }, "etags": { "type": "string", "description": "ETag of the resource." }, "kind": { "default": "licensing#licenseAssignment", "description": "Identifies the resource as a LicenseAssignment, which is `licensing#licenseAssignment`.", "type": "string" }, "selfLink": { "type": "string", "description": "Link to this page." }, "skuName": { "description": "Display Name of the sku of the product.", "type": "string" }, "productName": { "description": "Display Name of the product.", "type": "string" }, "userId": { "type": "string", "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.", "annotations": { "required": [ "licensing.licenseAssignments.update" ] } }, "skuId": { "type": "string", "annotations": { "required": [ "licensing.licenseAssignments.update" ] }, "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs." } }, "id": "LicenseAssignment" }, "LicenseAssignmentInsert": { "description": "Representation of a license assignment.", "id": "LicenseAssignmentInsert", "properties": { "userId": { "type": "string", "description": "Email id of the user", "annotations": { "required": [ "licensing.licenseAssignments.insert" ] } } }, "type": "object" }, "Empty": { "id": "Empty", "type": "object", "properties": {}, "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); }" }, "LicenseAssignmentList": { "id": "LicenseAssignmentList", "properties": { "etag": { "type": "string", "description": "ETag of the resource." }, "nextPageToken": { "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.", "type": "string" }, "kind": { "type": "string", "description": "Identifies the resource as a collection of LicenseAssignments.", "default": "licensing#licenseAssignmentList" }, "items": { "type": "array", "description": "The LicenseAssignments in this page of results.", "items": { "$ref": "LicenseAssignment" } } }, "type": "object" } }, "resources": { "licenseAssignments": { "methods": { "get": { "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", "httpMethod": "GET", "id": "licensing.licenseAssignments.get", "description": "Get a specific user's license by product SKU.", "scopes": [ "https://www.googleapis.com/auth/apps.licensing" ], "parameterOrder": [ "productId", "skuId", "userId" ], "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", "response": { "$ref": "LicenseAssignment" }, "parameters": { "skuId": { "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.", "location": "path", "required": true, "type": "string" }, "productId": { "location": "path", "required": true, "type": "string", "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs." }, "userId": { "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.", "required": true, "type": "string", "location": "path" } } }, "delete": { "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/apps.licensing" ], "httpMethod": "DELETE", "id": "licensing.licenseAssignments.delete", "parameterOrder": [ "productId", "skuId", "userId" ], "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", "parameters": { "skuId": { "location": "path", "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.", "type": "string", "required": true }, "userId": { "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.", "required": true, "location": "path", "type": "string" }, "productId": { "location": "path", "type": "string", "required": true, "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs." } }, "description": "Revoke a license.", "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}" }, "update": { "id": "licensing.licenseAssignments.update", "parameters": { "skuId": { "location": "path", "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.", "required": true, "type": "string" }, "userId": { "type": "string", "location": "path", "required": true, "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." }, "productId": { "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.", "type": "string", "required": true, "location": "path" } }, "description": "Reassign a user's product SKU with a different SKU in the same product.", "response": { "$ref": "LicenseAssignment" }, "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", "parameterOrder": [ "productId", "skuId", "userId" ], "request": { "$ref": "LicenseAssignment" }, "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", "httpMethod": "PUT", "scopes": [ "https://www.googleapis.com/auth/apps.licensing" ] }, "insert": { "id": "licensing.licenseAssignments.insert", "scopes": [ "https://www.googleapis.com/auth/apps.licensing" ], "request": { "$ref": "LicenseAssignmentInsert" }, "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user", "parameters": { "skuId": { "required": true, "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.", "type": "string", "location": "path" }, "productId": { "required": true, "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.", "type": "string", "location": "path" } }, "description": "Assign a license.", "httpMethod": "POST", "response": { "$ref": "LicenseAssignment" }, "parameterOrder": [ "productId", "skuId" ], "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user" }, "listForProductAndSku": { "id": "licensing.licenseAssignments.listForProductAndSku", "response": { "$ref": "LicenseAssignmentList" }, "httpMethod": "GET", "scopes": [ "https://www.googleapis.com/auth/apps.licensing" ], "description": "List all users assigned licenses for a specific product SKU.", "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/users", "parameterOrder": [ "productId", "skuId", "customerId" ], "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/users", "parameters": { "customerId": { "required": true, "location": "query", "description": "The customer's unique ID as defined in the Admin console, such as `C00000000`. If the customer is suspended, the server returns an error.", "type": "string" }, "productId": { "type": "string", "required": true, "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.", "location": "path" }, "pageToken": { "location": "query", "default": "", "type": "string", "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." }, "maxResults": { "type": "integer", "maximum": "1000", "location": "query", "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.", "minimum": "1", "format": "uint32", "default": "100" }, "skuId": { "location": "path", "required": true, "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.", "type": "string" } } }, "patch": { "parameters": { "skuId": { "location": "path", "required": true, "type": "string", "description": "A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs." }, "userId": { "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.", "location": "path", "required": true, "type": "string" }, "productId": { "location": "path", "required": true, "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.", "type": "string" } }, "request": { "$ref": "LicenseAssignment" }, "description": "Reassign a user's product SKU with a different SKU in the same product. This method supports patch semantics.", "scopes": [ "https://www.googleapis.com/auth/apps.licensing" ], "httpMethod": "PATCH", "flatPath": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", "id": "licensing.licenseAssignments.patch", "path": "apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}", "parameterOrder": [ "productId", "skuId", "userId" ], "response": { "$ref": "LicenseAssignment" } }, "listForProduct": { "scopes": [ "https://www.googleapis.com/auth/apps.licensing" ], "response": { "$ref": "LicenseAssignmentList" }, "httpMethod": "GET", "description": "List all users assigned licenses for a specific product SKU.", "parameters": { "pageToken": { "default": "", "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.", "type": "string", "location": "query" }, "maxResults": { "minimum": "1", "maximum": "1000", "location": "query", "type": "integer", "default": "100", "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.", "format": "uint32" }, "customerId": { "location": "query", "type": "string", "description": "The customer's unique ID as defined in the Admin console, such as `C00000000`. If the customer is suspended, the server returns an error.", "required": true }, "productId": { "description": "A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.", "required": true, "location": "path", "type": "string" } }, "parameterOrder": [ "productId", "customerId" ], "path": "apps/licensing/v1/product/{productId}/users", "flatPath": "apps/licensing/v1/product/{productId}/users", "id": "licensing.licenseAssignments.listForProduct" } } } }, "ownerName": "Google", "baseUrl": "https://licensing.googleapis.com/", "version": "v1", "basePath": "", "revision": "20220430", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "kind": "discovery#restDescription", "parameters": { "uploadType": { "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", "type": "string", "location": "query" }, "callback": { "location": "query", "type": "string", "description": "JSONP" }, "key": { "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.", "location": "query", "type": "string" }, "oauth_token": { "type": "string", "location": "query", "description": "OAuth 2.0 token for the current user." }, "$.xgafv": { "location": "query", "enumDescriptions": [ "v1 error format", "v2 error format" ], "description": "V1 error format.", "enum": [ "1", "2" ], "type": "string" }, "quotaUser": { "type": "string", "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.", "location": "query" }, "upload_protocol": { "location": "query", "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "type": "string" }, "prettyPrint": { "description": "Returns response with indentations and line breaks.", "default": "true", "location": "query", "type": "boolean" }, "fields": { "location": "query", "description": "Selector specifying which fields to include in a partial response.", "type": "string" }, "access_token": { "description": "OAuth access token.", "location": "query", "type": "string" }, "alt": { "enum": [ "json", "media", "proto" ], "enumDescriptions": [ "Responses with Content-Type of application/json", "Media download with context-dependent Content-Type", "Responses with Content-Type of application/x-protobuf" ], "type": "string", "location": "query", "default": "json", "description": "Data format for response." } }, "mtlsRootUrl": "https://licensing.mtls.googleapis.com/", "title": "Enterprise License Manager API", "auth": { "oauth2": { "scopes": { "https://www.googleapis.com/auth/apps.licensing": { "description": "View and manage G Suite licenses for your domain" } } } }, "rootUrl": "https://licensing.googleapis.com/", "fullyEncodeReservedExpansion": true, "description": "The Google Enterprise License Manager API lets you manage Google Workspace and related licenses for all users of a customer that you manage.", "servicePath": "", "ownerDomain": "google.com", "batchPath": "batch" }