File

src/apis/licensing/v1.ts

Extends

StandardParameters

Index

Properties

Properties

customerId
customerId: string
Type : string
Optional

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.

maxResults
maxResults: number
Type : number
Optional

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.

pageToken
pageToken: string
Type : string
Optional

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.

productId
productId: string
Type : string
Optional

A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.

skuId
skuId: string
Type : string
Optional

A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.

import {
  OAuth2Client,
  JWT,
  Compute,
  UserRefreshClient,
  BaseExternalAccountClient,
  GaxiosPromise,
  GoogleConfigurable,
  createAPIRequest,
  MethodOptions,
  StreamMethodOptions,
  GlobalOptions,
  GoogleAuth,
  BodyResponseCallback,
  APIRequestContext,
} from 'googleapis-common';
import {Readable} from 'stream';

export namespace licensing_v1 {
  export interface Options extends GlobalOptions {
    version: 'v1';
  }

  interface StandardParameters {
    /**
     * Auth client or API Key for the request
     */
    auth?:
      | string
      | OAuth2Client
      | JWT
      | Compute
      | UserRefreshClient
      | BaseExternalAccountClient
      | GoogleAuth;

    /**
     * V1 error format.
     */
    '$.xgafv'?: string;
    /**
     * OAuth access token.
     */
    access_token?: string;
    /**
     * Data format for response.
     */
    alt?: string;
    /**
     * JSONP
     */
    callback?: string;
    /**
     * Selector specifying which fields to include in a partial response.
     */
    fields?: string;
    /**
     * 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.
     */
    key?: string;
    /**
     * OAuth 2.0 token for the current user.
     */
    oauth_token?: string;
    /**
     * Returns response with indentations and line breaks.
     */
    prettyPrint?: boolean;
    /**
     * 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.
     */
    quotaUser?: string;
    /**
     * Legacy upload protocol for media (e.g. "media", "multipart").
     */
    uploadType?: string;
    /**
     * Upload protocol for media (e.g. "raw", "multipart").
     */
    upload_protocol?: string;
  }

  /**
   * Enterprise License Manager API
   *
   * The Google Enterprise License Manager API's allows you to license apps for all the users of a domain managed by you.
   *
   * @example
   * ```js
   * const {google} = require('googleapis');
   * const licensing = google.licensing('v1');
   * ```
   */
  export class Licensing {
    context: APIRequestContext;
    licenseAssignments: Resource$Licenseassignments;

    constructor(options: GlobalOptions, google?: GoogleConfigurable) {
      this.context = {
        _options: options || {},
        google,
      };

      this.licenseAssignments = new Resource$Licenseassignments(this.context);
    }
  }

  /**
   * 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 `{\}`.
   */
  export interface Schema$Empty {}
  /**
   * Representation of a license assignment.
   */
  export interface Schema$LicenseAssignment {
    /**
     * ETag of the resource.
     */
    etags?: string | null;
    /**
     * Identifies the resource as a LicenseAssignment, which is `licensing#licenseAssignment`.
     */
    kind?: string | null;
    /**
     * A product's unique identifier. For more information about products in this version of the API, see Product and SKU IDs.
     */
    productId?: string | null;
    /**
     * Display Name of the product.
     */
    productName?: string | null;
    /**
     * Link to this page.
     */
    selfLink?: string | null;
    /**
     * A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     */
    skuId?: string | null;
    /**
     * Display Name of the sku of the product.
     */
    skuName?: string | null;
    /**
     * 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.
     */
    userId?: string | null;
  }
  /**
   * Representation of a license assignment.
   */
  export interface Schema$LicenseAssignmentInsert {
    /**
     * Email id of the user
     */
    userId?: string | null;
  }
  export interface Schema$LicenseAssignmentList {
    /**
     * ETag of the resource.
     */
    etag?: string | null;
    /**
     * The LicenseAssignments in this page of results.
     */
    items?: Schema$LicenseAssignment[];
    /**
     * Identifies the resource as a collection of LicenseAssignments.
     */
    kind?: string | null;
    /**
     * 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.
     */
    nextPageToken?: string | null;
  }

  export class Resource$Licenseassignments {
    context: APIRequestContext;
    constructor(context: APIRequestContext) {
      this.context = context;
    }

    /**
     * Revoke a license.
     * @example
     * ```js
     * // Before running the sample:
     * // - Enable the API at:
     * //   https://console.developers.google.com/apis/api/licensing.googleapis.com
     * // - Login into gcloud by running:
     * //   `$ gcloud auth application-default login`
     * // - Install the npm module by running:
     * //   `$ npm install googleapis`
     *
     * const {google} = require('googleapis');
     * const licensing = google.licensing('v1');
     *
     * async function main() {
     *   const auth = new google.auth.GoogleAuth({
     *     // Scopes can be specified either as an array or as a single, space-delimited string.
     *     scopes: ['https://www.googleapis.com/auth/apps.licensing'],
     *   });
     *
     *   // Acquire an auth client, and bind it to all future calls
     *   const authClient = await auth.getClient();
     *   google.options({auth: authClient});
     *
     *   // Do the magic
     *   const res = await licensing.licenseAssignments.delete({
     *     // A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     *     productId: 'placeholder-value',
     *     // A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     *     skuId: 'placeholder-value',
     *     // 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.
     *     userId: 'placeholder-value',
     *   });
     *   console.log(res.data);
     *
     *   // Example response
     *   // {}
     * }
     *
     * main().catch(e => {
     *   console.error(e);
     *   throw e;
     * });
     *
     * ```
     *
     * @param params - Parameters for request
     * @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
     * @param callback - Optional callback that handles the response.
     * @returns A promise if used with async/await, or void if used with a callback.
     */
    delete(
      params: Params$Resource$Licenseassignments$Delete,
      options: StreamMethodOptions
    ): GaxiosPromise<Readable>;
    delete(
      params?: Params$Resource$Licenseassignments$Delete,
      options?: MethodOptions
    ): GaxiosPromise<Schema$Empty>;
    delete(
      params: Params$Resource$Licenseassignments$Delete,
      options: StreamMethodOptions | BodyResponseCallback<Readable>,
      callback: BodyResponseCallback<Readable>
    ): void;
    delete(
      params: Params$Resource$Licenseassignments$Delete,
      options: MethodOptions | BodyResponseCallback<Schema$Empty>,
      callback: BodyResponseCallback<Schema$Empty>
    ): void;
    delete(
      params: Params$Resource$Licenseassignments$Delete,
      callback: BodyResponseCallback<Schema$Empty>
    ): void;
    delete(callback: BodyResponseCallback<Schema$Empty>): void;
    delete(
      paramsOrCallback?:
        | Params$Resource$Licenseassignments$Delete
        | BodyResponseCallback<Schema$Empty>
        | BodyResponseCallback<Readable>,
      optionsOrCallback?:
        | MethodOptions
        | StreamMethodOptions
        | BodyResponseCallback<Schema$Empty>
        | BodyResponseCallback<Readable>,
      callback?:
        | BodyResponseCallback<Schema$Empty>
        | BodyResponseCallback<Readable>
    ): void | GaxiosPromise<Schema$Empty> | GaxiosPromise<Readable> {
      let params = (paramsOrCallback ||
        {}) as Params$Resource$Licenseassignments$Delete;
      let options = (optionsOrCallback || {}) as MethodOptions;

      if (typeof paramsOrCallback === 'function') {
        callback = paramsOrCallback;
        params = {} as Params$Resource$Licenseassignments$Delete;
        options = {};
      }

      if (typeof optionsOrCallback === 'function') {
        callback = optionsOrCallback;
        options = {};
      }

      const rootUrl = options.rootUrl || 'https://licensing.googleapis.com/';
      const parameters = {
        options: Object.assign(
          {
            url: (
              rootUrl +
              '/apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}'
            ).replace(/([^:]\/)\/+/g, '$1'),
            method: 'DELETE',
          },
          options
        ),
        params,
        requiredParams: ['productId', 'skuId', 'userId'],
        pathParams: ['productId', 'skuId', 'userId'],
        context: this.context,
      };
      if (callback) {
        createAPIRequest<Schema$Empty>(
          parameters,
          callback as BodyResponseCallback<unknown>
        );
      } else {
        return createAPIRequest<Schema$Empty>(parameters);
      }
    }

    /**
     * Get a specific user's license by product SKU.
     * @example
     * ```js
     * // Before running the sample:
     * // - Enable the API at:
     * //   https://console.developers.google.com/apis/api/licensing.googleapis.com
     * // - Login into gcloud by running:
     * //   `$ gcloud auth application-default login`
     * // - Install the npm module by running:
     * //   `$ npm install googleapis`
     *
     * const {google} = require('googleapis');
     * const licensing = google.licensing('v1');
     *
     * async function main() {
     *   const auth = new google.auth.GoogleAuth({
     *     // Scopes can be specified either as an array or as a single, space-delimited string.
     *     scopes: ['https://www.googleapis.com/auth/apps.licensing'],
     *   });
     *
     *   // Acquire an auth client, and bind it to all future calls
     *   const authClient = await auth.getClient();
     *   google.options({auth: authClient});
     *
     *   // Do the magic
     *   const res = await licensing.licenseAssignments.get({
     *     // A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     *     productId: 'placeholder-value',
     *     // A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     *     skuId: 'placeholder-value',
     *     // 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.
     *     userId: 'placeholder-value',
     *   });
     *   console.log(res.data);
     *
     *   // Example response
     *   // {
     *   //   "etags": "my_etags",
     *   //   "kind": "my_kind",
     *   //   "productId": "my_productId",
     *   //   "productName": "my_productName",
     *   //   "selfLink": "my_selfLink",
     *   //   "skuId": "my_skuId",
     *   //   "skuName": "my_skuName",
     *   //   "userId": "my_userId"
     *   // }
     * }
     *
     * main().catch(e => {
     *   console.error(e);
     *   throw e;
     * });
     *
     * ```
     *
     * @param params - Parameters for request
     * @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
     * @param callback - Optional callback that handles the response.
     * @returns A promise if used with async/await, or void if used with a callback.
     */
    get(
      params: Params$Resource$Licenseassignments$Get,
      options: StreamMethodOptions
    ): GaxiosPromise<Readable>;
    get(
      params?: Params$Resource$Licenseassignments$Get,
      options?: MethodOptions
    ): GaxiosPromise<Schema$LicenseAssignment>;
    get(
      params: Params$Resource$Licenseassignments$Get,
      options: StreamMethodOptions | BodyResponseCallback<Readable>,
      callback: BodyResponseCallback<Readable>
    ): void;
    get(
      params: Params$Resource$Licenseassignments$Get,
      options: MethodOptions | BodyResponseCallback<Schema$LicenseAssignment>,
      callback: BodyResponseCallback<Schema$LicenseAssignment>
    ): void;
    get(
      params: Params$Resource$Licenseassignments$Get,
      callback: BodyResponseCallback<Schema$LicenseAssignment>
    ): void;
    get(callback: BodyResponseCallback<Schema$LicenseAssignment>): void;
    get(
      paramsOrCallback?:
        | Params$Resource$Licenseassignments$Get
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>,
      optionsOrCallback?:
        | MethodOptions
        | StreamMethodOptions
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>,
      callback?:
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>
    ):
      | void
      | GaxiosPromise<Schema$LicenseAssignment>
      | GaxiosPromise<Readable> {
      let params = (paramsOrCallback ||
        {}) as Params$Resource$Licenseassignments$Get;
      let options = (optionsOrCallback || {}) as MethodOptions;

      if (typeof paramsOrCallback === 'function') {
        callback = paramsOrCallback;
        params = {} as Params$Resource$Licenseassignments$Get;
        options = {};
      }

      if (typeof optionsOrCallback === 'function') {
        callback = optionsOrCallback;
        options = {};
      }

      const rootUrl = options.rootUrl || 'https://licensing.googleapis.com/';
      const parameters = {
        options: Object.assign(
          {
            url: (
              rootUrl +
              '/apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}'
            ).replace(/([^:]\/)\/+/g, '$1'),
            method: 'GET',
          },
          options
        ),
        params,
        requiredParams: ['productId', 'skuId', 'userId'],
        pathParams: ['productId', 'skuId', 'userId'],
        context: this.context,
      };
      if (callback) {
        createAPIRequest<Schema$LicenseAssignment>(
          parameters,
          callback as BodyResponseCallback<unknown>
        );
      } else {
        return createAPIRequest<Schema$LicenseAssignment>(parameters);
      }
    }

    /**
     * Assign a license.
     * @example
     * ```js
     * // Before running the sample:
     * // - Enable the API at:
     * //   https://console.developers.google.com/apis/api/licensing.googleapis.com
     * // - Login into gcloud by running:
     * //   `$ gcloud auth application-default login`
     * // - Install the npm module by running:
     * //   `$ npm install googleapis`
     *
     * const {google} = require('googleapis');
     * const licensing = google.licensing('v1');
     *
     * async function main() {
     *   const auth = new google.auth.GoogleAuth({
     *     // Scopes can be specified either as an array or as a single, space-delimited string.
     *     scopes: ['https://www.googleapis.com/auth/apps.licensing'],
     *   });
     *
     *   // Acquire an auth client, and bind it to all future calls
     *   const authClient = await auth.getClient();
     *   google.options({auth: authClient});
     *
     *   // Do the magic
     *   const res = await licensing.licenseAssignments.insert({
     *     // A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     *     productId: 'placeholder-value',
     *     // A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     *     skuId: 'placeholder-value',
     *
     *     // Request body metadata
     *     requestBody: {
     *       // request body parameters
     *       // {
     *       //   "userId": "my_userId"
     *       // }
     *     },
     *   });
     *   console.log(res.data);
     *
     *   // Example response
     *   // {
     *   //   "etags": "my_etags",
     *   //   "kind": "my_kind",
     *   //   "productId": "my_productId",
     *   //   "productName": "my_productName",
     *   //   "selfLink": "my_selfLink",
     *   //   "skuId": "my_skuId",
     *   //   "skuName": "my_skuName",
     *   //   "userId": "my_userId"
     *   // }
     * }
     *
     * main().catch(e => {
     *   console.error(e);
     *   throw e;
     * });
     *
     * ```
     *
     * @param params - Parameters for request
     * @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
     * @param callback - Optional callback that handles the response.
     * @returns A promise if used with async/await, or void if used with a callback.
     */
    insert(
      params: Params$Resource$Licenseassignments$Insert,
      options: StreamMethodOptions
    ): GaxiosPromise<Readable>;
    insert(
      params?: Params$Resource$Licenseassignments$Insert,
      options?: MethodOptions
    ): GaxiosPromise<Schema$LicenseAssignment>;
    insert(
      params: Params$Resource$Licenseassignments$Insert,
      options: StreamMethodOptions | BodyResponseCallback<Readable>,
      callback: BodyResponseCallback<Readable>
    ): void;
    insert(
      params: Params$Resource$Licenseassignments$Insert,
      options: MethodOptions | BodyResponseCallback<Schema$LicenseAssignment>,
      callback: BodyResponseCallback<Schema$LicenseAssignment>
    ): void;
    insert(
      params: Params$Resource$Licenseassignments$Insert,
      callback: BodyResponseCallback<Schema$LicenseAssignment>
    ): void;
    insert(callback: BodyResponseCallback<Schema$LicenseAssignment>): void;
    insert(
      paramsOrCallback?:
        | Params$Resource$Licenseassignments$Insert
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>,
      optionsOrCallback?:
        | MethodOptions
        | StreamMethodOptions
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>,
      callback?:
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>
    ):
      | void
      | GaxiosPromise<Schema$LicenseAssignment>
      | GaxiosPromise<Readable> {
      let params = (paramsOrCallback ||
        {}) as Params$Resource$Licenseassignments$Insert;
      let options = (optionsOrCallback || {}) as MethodOptions;

      if (typeof paramsOrCallback === 'function') {
        callback = paramsOrCallback;
        params = {} as Params$Resource$Licenseassignments$Insert;
        options = {};
      }

      if (typeof optionsOrCallback === 'function') {
        callback = optionsOrCallback;
        options = {};
      }

      const rootUrl = options.rootUrl || 'https://licensing.googleapis.com/';
      const parameters = {
        options: Object.assign(
          {
            url: (
              rootUrl +
              '/apps/licensing/v1/product/{productId}/sku/{skuId}/user'
            ).replace(/([^:]\/)\/+/g, '$1'),
            method: 'POST',
          },
          options
        ),
        params,
        requiredParams: ['productId', 'skuId'],
        pathParams: ['productId', 'skuId'],
        context: this.context,
      };
      if (callback) {
        createAPIRequest<Schema$LicenseAssignment>(
          parameters,
          callback as BodyResponseCallback<unknown>
        );
      } else {
        return createAPIRequest<Schema$LicenseAssignment>(parameters);
      }
    }

    /**
     * List all users assigned licenses for a specific product SKU.
     * @example
     * ```js
     * // Before running the sample:
     * // - Enable the API at:
     * //   https://console.developers.google.com/apis/api/licensing.googleapis.com
     * // - Login into gcloud by running:
     * //   `$ gcloud auth application-default login`
     * // - Install the npm module by running:
     * //   `$ npm install googleapis`
     *
     * const {google} = require('googleapis');
     * const licensing = google.licensing('v1');
     *
     * async function main() {
     *   const auth = new google.auth.GoogleAuth({
     *     // Scopes can be specified either as an array or as a single, space-delimited string.
     *     scopes: ['https://www.googleapis.com/auth/apps.licensing'],
     *   });
     *
     *   // Acquire an auth client, and bind it to all future calls
     *   const authClient = await auth.getClient();
     *   google.options({auth: authClient});
     *
     *   // Do the magic
     *   const res = await licensing.licenseAssignments.listForProduct({
     *     // 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.
     *     customerId: 'placeholder-value',
     *     // 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.
     *     maxResults: 'placeholder-value',
     *     // 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.
     *     pageToken: 'placeholder-value',
     *     // A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     *     productId: 'placeholder-value',
     *   });
     *   console.log(res.data);
     *
     *   // Example response
     *   // {
     *   //   "etag": "my_etag",
     *   //   "items": [],
     *   //   "kind": "my_kind",
     *   //   "nextPageToken": "my_nextPageToken"
     *   // }
     * }
     *
     * main().catch(e => {
     *   console.error(e);
     *   throw e;
     * });
     *
     * ```
     *
     * @param params - Parameters for request
     * @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
     * @param callback - Optional callback that handles the response.
     * @returns A promise if used with async/await, or void if used with a callback.
     */
    listForProduct(
      params: Params$Resource$Licenseassignments$Listforproduct,
      options: StreamMethodOptions
    ): GaxiosPromise<Readable>;
    listForProduct(
      params?: Params$Resource$Licenseassignments$Listforproduct,
      options?: MethodOptions
    ): GaxiosPromise<Schema$LicenseAssignmentList>;
    listForProduct(
      params: Params$Resource$Licenseassignments$Listforproduct,
      options: StreamMethodOptions | BodyResponseCallback<Readable>,
      callback: BodyResponseCallback<Readable>
    ): void;
    listForProduct(
      params: Params$Resource$Licenseassignments$Listforproduct,
      options:
        | MethodOptions
        | BodyResponseCallback<Schema$LicenseAssignmentList>,
      callback: BodyResponseCallback<Schema$LicenseAssignmentList>
    ): void;
    listForProduct(
      params: Params$Resource$Licenseassignments$Listforproduct,
      callback: BodyResponseCallback<Schema$LicenseAssignmentList>
    ): void;
    listForProduct(
      callback: BodyResponseCallback<Schema$LicenseAssignmentList>
    ): void;
    listForProduct(
      paramsOrCallback?:
        | Params$Resource$Licenseassignments$Listforproduct
        | BodyResponseCallback<Schema$LicenseAssignmentList>
        | BodyResponseCallback<Readable>,
      optionsOrCallback?:
        | MethodOptions
        | StreamMethodOptions
        | BodyResponseCallback<Schema$LicenseAssignmentList>
        | BodyResponseCallback<Readable>,
      callback?:
        | BodyResponseCallback<Schema$LicenseAssignmentList>
        | BodyResponseCallback<Readable>
    ):
      | void
      | GaxiosPromise<Schema$LicenseAssignmentList>
      | GaxiosPromise<Readable> {
      let params = (paramsOrCallback ||
        {}) as Params$Resource$Licenseassignments$Listforproduct;
      let options = (optionsOrCallback || {}) as MethodOptions;

      if (typeof paramsOrCallback === 'function') {
        callback = paramsOrCallback;
        params = {} as Params$Resource$Licenseassignments$Listforproduct;
        options = {};
      }

      if (typeof optionsOrCallback === 'function') {
        callback = optionsOrCallback;
        options = {};
      }

      const rootUrl = options.rootUrl || 'https://licensing.googleapis.com/';
      const parameters = {
        options: Object.assign(
          {
            url: (
              rootUrl + '/apps/licensing/v1/product/{productId}/users'
            ).replace(/([^:]\/)\/+/g, '$1'),
            method: 'GET',
          },
          options
        ),
        params,
        requiredParams: ['productId', 'customerId'],
        pathParams: ['productId'],
        context: this.context,
      };
      if (callback) {
        createAPIRequest<Schema$LicenseAssignmentList>(
          parameters,
          callback as BodyResponseCallback<unknown>
        );
      } else {
        return createAPIRequest<Schema$LicenseAssignmentList>(parameters);
      }
    }

    /**
     * List all users assigned licenses for a specific product SKU.
     * @example
     * ```js
     * // Before running the sample:
     * // - Enable the API at:
     * //   https://console.developers.google.com/apis/api/licensing.googleapis.com
     * // - Login into gcloud by running:
     * //   `$ gcloud auth application-default login`
     * // - Install the npm module by running:
     * //   `$ npm install googleapis`
     *
     * const {google} = require('googleapis');
     * const licensing = google.licensing('v1');
     *
     * async function main() {
     *   const auth = new google.auth.GoogleAuth({
     *     // Scopes can be specified either as an array or as a single, space-delimited string.
     *     scopes: ['https://www.googleapis.com/auth/apps.licensing'],
     *   });
     *
     *   // Acquire an auth client, and bind it to all future calls
     *   const authClient = await auth.getClient();
     *   google.options({auth: authClient});
     *
     *   // Do the magic
     *   const res = await licensing.licenseAssignments.listForProductAndSku({
     *     // 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.
     *     customerId: 'placeholder-value',
     *     // 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.
     *     maxResults: 'placeholder-value',
     *     // 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.
     *     pageToken: 'placeholder-value',
     *     // A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     *     productId: 'placeholder-value',
     *     // A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     *     skuId: 'placeholder-value',
     *   });
     *   console.log(res.data);
     *
     *   // Example response
     *   // {
     *   //   "etag": "my_etag",
     *   //   "items": [],
     *   //   "kind": "my_kind",
     *   //   "nextPageToken": "my_nextPageToken"
     *   // }
     * }
     *
     * main().catch(e => {
     *   console.error(e);
     *   throw e;
     * });
     *
     * ```
     *
     * @param params - Parameters for request
     * @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
     * @param callback - Optional callback that handles the response.
     * @returns A promise if used with async/await, or void if used with a callback.
     */
    listForProductAndSku(
      params: Params$Resource$Licenseassignments$Listforproductandsku,
      options: StreamMethodOptions
    ): GaxiosPromise<Readable>;
    listForProductAndSku(
      params?: Params$Resource$Licenseassignments$Listforproductandsku,
      options?: MethodOptions
    ): GaxiosPromise<Schema$LicenseAssignmentList>;
    listForProductAndSku(
      params: Params$Resource$Licenseassignments$Listforproductandsku,
      options: StreamMethodOptions | BodyResponseCallback<Readable>,
      callback: BodyResponseCallback<Readable>
    ): void;
    listForProductAndSku(
      params: Params$Resource$Licenseassignments$Listforproductandsku,
      options:
        | MethodOptions
        | BodyResponseCallback<Schema$LicenseAssignmentList>,
      callback: BodyResponseCallback<Schema$LicenseAssignmentList>
    ): void;
    listForProductAndSku(
      params: Params$Resource$Licenseassignments$Listforproductandsku,
      callback: BodyResponseCallback<Schema$LicenseAssignmentList>
    ): void;
    listForProductAndSku(
      callback: BodyResponseCallback<Schema$LicenseAssignmentList>
    ): void;
    listForProductAndSku(
      paramsOrCallback?:
        | Params$Resource$Licenseassignments$Listforproductandsku
        | BodyResponseCallback<Schema$LicenseAssignmentList>
        | BodyResponseCallback<Readable>,
      optionsOrCallback?:
        | MethodOptions
        | StreamMethodOptions
        | BodyResponseCallback<Schema$LicenseAssignmentList>
        | BodyResponseCallback<Readable>,
      callback?:
        | BodyResponseCallback<Schema$LicenseAssignmentList>
        | BodyResponseCallback<Readable>
    ):
      | void
      | GaxiosPromise<Schema$LicenseAssignmentList>
      | GaxiosPromise<Readable> {
      let params = (paramsOrCallback ||
        {}) as Params$Resource$Licenseassignments$Listforproductandsku;
      let options = (optionsOrCallback || {}) as MethodOptions;

      if (typeof paramsOrCallback === 'function') {
        callback = paramsOrCallback;
        params = {} as Params$Resource$Licenseassignments$Listforproductandsku;
        options = {};
      }

      if (typeof optionsOrCallback === 'function') {
        callback = optionsOrCallback;
        options = {};
      }

      const rootUrl = options.rootUrl || 'https://licensing.googleapis.com/';
      const parameters = {
        options: Object.assign(
          {
            url: (
              rootUrl +
              '/apps/licensing/v1/product/{productId}/sku/{skuId}/users'
            ).replace(/([^:]\/)\/+/g, '$1'),
            method: 'GET',
          },
          options
        ),
        params,
        requiredParams: ['productId', 'skuId', 'customerId'],
        pathParams: ['productId', 'skuId'],
        context: this.context,
      };
      if (callback) {
        createAPIRequest<Schema$LicenseAssignmentList>(
          parameters,
          callback as BodyResponseCallback<unknown>
        );
      } else {
        return createAPIRequest<Schema$LicenseAssignmentList>(parameters);
      }
    }

    /**
     * Reassign a user's product SKU with a different SKU in the same product. This method supports patch semantics.
     * @example
     * ```js
     * // Before running the sample:
     * // - Enable the API at:
     * //   https://console.developers.google.com/apis/api/licensing.googleapis.com
     * // - Login into gcloud by running:
     * //   `$ gcloud auth application-default login`
     * // - Install the npm module by running:
     * //   `$ npm install googleapis`
     *
     * const {google} = require('googleapis');
     * const licensing = google.licensing('v1');
     *
     * async function main() {
     *   const auth = new google.auth.GoogleAuth({
     *     // Scopes can be specified either as an array or as a single, space-delimited string.
     *     scopes: ['https://www.googleapis.com/auth/apps.licensing'],
     *   });
     *
     *   // Acquire an auth client, and bind it to all future calls
     *   const authClient = await auth.getClient();
     *   google.options({auth: authClient});
     *
     *   // Do the magic
     *   const res = await licensing.licenseAssignments.patch({
     *     // A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     *     productId: 'placeholder-value',
     *     // A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     *     skuId: 'placeholder-value',
     *     // 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.
     *     userId: 'placeholder-value',
     *
     *     // Request body metadata
     *     requestBody: {
     *       // request body parameters
     *       // {
     *       //   "etags": "my_etags",
     *       //   "kind": "my_kind",
     *       //   "productId": "my_productId",
     *       //   "productName": "my_productName",
     *       //   "selfLink": "my_selfLink",
     *       //   "skuId": "my_skuId",
     *       //   "skuName": "my_skuName",
     *       //   "userId": "my_userId"
     *       // }
     *     },
     *   });
     *   console.log(res.data);
     *
     *   // Example response
     *   // {
     *   //   "etags": "my_etags",
     *   //   "kind": "my_kind",
     *   //   "productId": "my_productId",
     *   //   "productName": "my_productName",
     *   //   "selfLink": "my_selfLink",
     *   //   "skuId": "my_skuId",
     *   //   "skuName": "my_skuName",
     *   //   "userId": "my_userId"
     *   // }
     * }
     *
     * main().catch(e => {
     *   console.error(e);
     *   throw e;
     * });
     *
     * ```
     *
     * @param params - Parameters for request
     * @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
     * @param callback - Optional callback that handles the response.
     * @returns A promise if used with async/await, or void if used with a callback.
     */
    patch(
      params: Params$Resource$Licenseassignments$Patch,
      options: StreamMethodOptions
    ): GaxiosPromise<Readable>;
    patch(
      params?: Params$Resource$Licenseassignments$Patch,
      options?: MethodOptions
    ): GaxiosPromise<Schema$LicenseAssignment>;
    patch(
      params: Params$Resource$Licenseassignments$Patch,
      options: StreamMethodOptions | BodyResponseCallback<Readable>,
      callback: BodyResponseCallback<Readable>
    ): void;
    patch(
      params: Params$Resource$Licenseassignments$Patch,
      options: MethodOptions | BodyResponseCallback<Schema$LicenseAssignment>,
      callback: BodyResponseCallback<Schema$LicenseAssignment>
    ): void;
    patch(
      params: Params$Resource$Licenseassignments$Patch,
      callback: BodyResponseCallback<Schema$LicenseAssignment>
    ): void;
    patch(callback: BodyResponseCallback<Schema$LicenseAssignment>): void;
    patch(
      paramsOrCallback?:
        | Params$Resource$Licenseassignments$Patch
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>,
      optionsOrCallback?:
        | MethodOptions
        | StreamMethodOptions
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>,
      callback?:
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>
    ):
      | void
      | GaxiosPromise<Schema$LicenseAssignment>
      | GaxiosPromise<Readable> {
      let params = (paramsOrCallback ||
        {}) as Params$Resource$Licenseassignments$Patch;
      let options = (optionsOrCallback || {}) as MethodOptions;

      if (typeof paramsOrCallback === 'function') {
        callback = paramsOrCallback;
        params = {} as Params$Resource$Licenseassignments$Patch;
        options = {};
      }

      if (typeof optionsOrCallback === 'function') {
        callback = optionsOrCallback;
        options = {};
      }

      const rootUrl = options.rootUrl || 'https://licensing.googleapis.com/';
      const parameters = {
        options: Object.assign(
          {
            url: (
              rootUrl +
              '/apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}'
            ).replace(/([^:]\/)\/+/g, '$1'),
            method: 'PATCH',
          },
          options
        ),
        params,
        requiredParams: ['productId', 'skuId', 'userId'],
        pathParams: ['productId', 'skuId', 'userId'],
        context: this.context,
      };
      if (callback) {
        createAPIRequest<Schema$LicenseAssignment>(
          parameters,
          callback as BodyResponseCallback<unknown>
        );
      } else {
        return createAPIRequest<Schema$LicenseAssignment>(parameters);
      }
    }

    /**
     * Reassign a user's product SKU with a different SKU in the same product.
     * @example
     * ```js
     * // Before running the sample:
     * // - Enable the API at:
     * //   https://console.developers.google.com/apis/api/licensing.googleapis.com
     * // - Login into gcloud by running:
     * //   `$ gcloud auth application-default login`
     * // - Install the npm module by running:
     * //   `$ npm install googleapis`
     *
     * const {google} = require('googleapis');
     * const licensing = google.licensing('v1');
     *
     * async function main() {
     *   const auth = new google.auth.GoogleAuth({
     *     // Scopes can be specified either as an array or as a single, space-delimited string.
     *     scopes: ['https://www.googleapis.com/auth/apps.licensing'],
     *   });
     *
     *   // Acquire an auth client, and bind it to all future calls
     *   const authClient = await auth.getClient();
     *   google.options({auth: authClient});
     *
     *   // Do the magic
     *   const res = await licensing.licenseAssignments.update({
     *     // A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     *     productId: 'placeholder-value',
     *     // A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     *     skuId: 'placeholder-value',
     *     // 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.
     *     userId: 'placeholder-value',
     *
     *     // Request body metadata
     *     requestBody: {
     *       // request body parameters
     *       // {
     *       //   "etags": "my_etags",
     *       //   "kind": "my_kind",
     *       //   "productId": "my_productId",
     *       //   "productName": "my_productName",
     *       //   "selfLink": "my_selfLink",
     *       //   "skuId": "my_skuId",
     *       //   "skuName": "my_skuName",
     *       //   "userId": "my_userId"
     *       // }
     *     },
     *   });
     *   console.log(res.data);
     *
     *   // Example response
     *   // {
     *   //   "etags": "my_etags",
     *   //   "kind": "my_kind",
     *   //   "productId": "my_productId",
     *   //   "productName": "my_productName",
     *   //   "selfLink": "my_selfLink",
     *   //   "skuId": "my_skuId",
     *   //   "skuName": "my_skuName",
     *   //   "userId": "my_userId"
     *   // }
     * }
     *
     * main().catch(e => {
     *   console.error(e);
     *   throw e;
     * });
     *
     * ```
     *
     * @param params - Parameters for request
     * @param options - Optionally override request options, such as `url`, `method`, and `encoding`.
     * @param callback - Optional callback that handles the response.
     * @returns A promise if used with async/await, or void if used with a callback.
     */
    update(
      params: Params$Resource$Licenseassignments$Update,
      options: StreamMethodOptions
    ): GaxiosPromise<Readable>;
    update(
      params?: Params$Resource$Licenseassignments$Update,
      options?: MethodOptions
    ): GaxiosPromise<Schema$LicenseAssignment>;
    update(
      params: Params$Resource$Licenseassignments$Update,
      options: StreamMethodOptions | BodyResponseCallback<Readable>,
      callback: BodyResponseCallback<Readable>
    ): void;
    update(
      params: Params$Resource$Licenseassignments$Update,
      options: MethodOptions | BodyResponseCallback<Schema$LicenseAssignment>,
      callback: BodyResponseCallback<Schema$LicenseAssignment>
    ): void;
    update(
      params: Params$Resource$Licenseassignments$Update,
      callback: BodyResponseCallback<Schema$LicenseAssignment>
    ): void;
    update(callback: BodyResponseCallback<Schema$LicenseAssignment>): void;
    update(
      paramsOrCallback?:
        | Params$Resource$Licenseassignments$Update
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>,
      optionsOrCallback?:
        | MethodOptions
        | StreamMethodOptions
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>,
      callback?:
        | BodyResponseCallback<Schema$LicenseAssignment>
        | BodyResponseCallback<Readable>
    ):
      | void
      | GaxiosPromise<Schema$LicenseAssignment>
      | GaxiosPromise<Readable> {
      let params = (paramsOrCallback ||
        {}) as Params$Resource$Licenseassignments$Update;
      let options = (optionsOrCallback || {}) as MethodOptions;

      if (typeof paramsOrCallback === 'function') {
        callback = paramsOrCallback;
        params = {} as Params$Resource$Licenseassignments$Update;
        options = {};
      }

      if (typeof optionsOrCallback === 'function') {
        callback = optionsOrCallback;
        options = {};
      }

      const rootUrl = options.rootUrl || 'https://licensing.googleapis.com/';
      const parameters = {
        options: Object.assign(
          {
            url: (
              rootUrl +
              '/apps/licensing/v1/product/{productId}/sku/{skuId}/user/{userId}'
            ).replace(/([^:]\/)\/+/g, '$1'),
            method: 'PUT',
          },
          options
        ),
        params,
        requiredParams: ['productId', 'skuId', 'userId'],
        pathParams: ['productId', 'skuId', 'userId'],
        context: this.context,
      };
      if (callback) {
        createAPIRequest<Schema$LicenseAssignment>(
          parameters,
          callback as BodyResponseCallback<unknown>
        );
      } else {
        return createAPIRequest<Schema$LicenseAssignment>(parameters);
      }
    }
  }

  export interface Params$Resource$Licenseassignments$Delete
    extends StandardParameters {
    /**
     * A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     */
    productId?: string;
    /**
     * A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     */
    skuId?: string;
    /**
     * 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.
     */
    userId?: string;
  }
  export interface Params$Resource$Licenseassignments$Get
    extends StandardParameters {
    /**
     * A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     */
    productId?: string;
    /**
     * A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     */
    skuId?: string;
    /**
     * 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.
     */
    userId?: string;
  }
  export interface Params$Resource$Licenseassignments$Insert
    extends StandardParameters {
    /**
     * A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     */
    productId?: string;
    /**
     * A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     */
    skuId?: string;

    /**
     * Request body metadata
     */
    requestBody?: Schema$LicenseAssignmentInsert;
  }
  export interface Params$Resource$Licenseassignments$Listforproduct
    extends StandardParameters {
    /**
     * 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.
     */
    customerId?: string;
    /**
     * 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.
     */
    maxResults?: number;
    /**
     * 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.
     */
    pageToken?: string;
    /**
     * A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     */
    productId?: string;
  }
  export interface Params$Resource$Licenseassignments$Listforproductandsku
    extends StandardParameters {
    /**
     * 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.
     */
    customerId?: string;
    /**
     * 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.
     */
    maxResults?: number;
    /**
     * 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.
     */
    pageToken?: string;
    /**
     * A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     */
    productId?: string;
    /**
     * A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     */
    skuId?: string;
  }
  export interface Params$Resource$Licenseassignments$Patch
    extends StandardParameters {
    /**
     * A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     */
    productId?: string;
    /**
     * A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     */
    skuId?: string;
    /**
     * 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.
     */
    userId?: string;

    /**
     * Request body metadata
     */
    requestBody?: Schema$LicenseAssignment;
  }
  export interface Params$Resource$Licenseassignments$Update
    extends StandardParameters {
    /**
     * A product's unique identifier. For more information about products in this version of the API, see Products and SKUs.
     */
    productId?: string;
    /**
     * A product SKU's unique identifier. For more information about available SKUs in this version of the API, see Products and SKUs.
     */
    skuId?: string;
    /**
     * 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.
     */
    userId?: string;

    /**
     * Request body metadata
     */
    requestBody?: Schema$LicenseAssignment;
  }
}

result-matching ""

    No results matching ""