import type * as gax from 'google-gax';
import type { Callback, CallOptions, Descriptors, ClientOptions, LROperation, PaginationCallback } from 'google-gax';
import { Transform } from 'stream';
import * as protos from '../../protos/protos';
/**
 *  The Projects API.
 * @class
 * @memberof v1
 */
export declare class ProjectsClient {
    private _terminated;
    private _opts;
    private _providedCustomServicePath;
    private _gaxModule;
    private _gaxGrpc;
    private _protos;
    private _defaults;
    private _universeDomain;
    private _servicePath;
    private _log;
    auth: gax.GoogleAuth;
    descriptors: Descriptors;
    warn: (code: string, message: string, warnType?: string) => void;
    innerApiCalls: {
        [name: string]: Function;
    };
    projectsStub?: Promise<{
        [name: string]: Function;
    }>;
    /**
     * Construct an instance of ProjectsClient.
     *
     * @param {object} [options] - The configuration object.
     * The options accepted by the constructor are described in detail
     * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance).
     * The common options are:
     * @param {object} [options.credentials] - Credentials object.
     * @param {string} [options.credentials.client_email]
     * @param {string} [options.credentials.private_key]
     * @param {string} [options.email] - Account email address. Required when
     *     using a .pem or .p12 keyFilename.
     * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or
     *     .p12 key downloaded from the Google Developers Console. If you provide
     *     a path to a JSON file, the projectId option below is not necessary.
     *     NOTE: .pem and .p12 require you to specify options.email as well.
     * @param {number} [options.port] - The port on which to connect to
     *     the remote host.
     * @param {string} [options.projectId] - The project ID from the Google
     *     Developer's Console, e.g. 'grape-spaceship-123'. We will also check
     *     the environment variable GCLOUD_PROJECT for your project ID. If your
     *     app is running in an environment which supports
     *     {@link https://cloud.google.com/docs/authentication/application-default-credentials Application Default Credentials},
     *     your project ID will be detected automatically.
     * @param {string} [options.apiEndpoint] - The domain name of the
     *     API remote host.
     * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override.
     *     Follows the structure of {@link gapicConfig}.
     * @param {boolean} [options.fallback] - Use HTTP/1.1 REST mode.
     *     For more information, please check the
     *     {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}.
     * @param {gax} [gaxInstance]: loaded instance of `google-gax`. Useful if you
     *     need to avoid loading the default gRPC version and want to use the fallback
     *     HTTP implementation. Load only fallback version and pass it to the constructor:
     *     ```
     *     const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC
     *     const client = new ProjectsClient({fallback: true}, gax);
     *     ```
     */
    constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback);
    /**
     * Initialize the client.
     * Performs asynchronous operations (such as authentication) and prepares the client.
     * This function will be called automatically when any class method is called for the
     * first time, but if you need to initialize it before calling an actual method,
     * feel free to call initialize() directly.
     *
     * You can await on this method if you want to make sure the client is initialized.
     *
     * @returns {Promise} A promise that resolves to an authenticated service stub.
     */
    initialize(): Promise<{
        [name: string]: Function;
    }>;
    /**
     * The DNS address for this API service.
     * @deprecated Use the apiEndpoint method of the client instance.
     * @returns {string} The DNS address for this service.
     */
    static get servicePath(): string;
    /**
     * The DNS address for this API service - same as servicePath.
     * @deprecated Use the apiEndpoint method of the client instance.
     * @returns {string} The DNS address for this service.
     */
    static get apiEndpoint(): string;
    /**
     * The DNS address for this API service.
     * @returns {string} The DNS address for this service.
     */
    get apiEndpoint(): string;
    get universeDomain(): string;
    /**
     * The port for this API service.
     * @returns {number} The default port for this service.
     */
    static get port(): number;
    /**
     * The scopes needed to make gRPC calls for every method defined
     * in this service.
     * @returns {string[]} List of default scopes.
     */
    static get scopes(): string[];
    getProjectId(): Promise<string>;
    getProjectId(callback: Callback<string, undefined, undefined>): void;
    /**
     * Disable this project as a shared VPC host project.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.disable_xpn_host.js</caption>
     * region_tag:compute_v1_generated_Projects_DisableXpnHost_async
     */
    disableXpnHost(request?: protos.google.cloud.compute.v1.IDisableXpnHostProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    disableXpnHost(request: protos.google.cloud.compute.v1.IDisableXpnHostProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IDisableXpnHostProjectRequest | null | undefined, {} | null | undefined>): void;
    disableXpnHost(request: protos.google.cloud.compute.v1.IDisableXpnHostProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IDisableXpnHostProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Disable a service resource (also known as service project) associated with
     * this host project.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {google.cloud.compute.v1.ProjectsDisableXpnResourceRequest} request.projectsDisableXpnResourceRequestResource
     *   The body resource for this request
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.disable_xpn_resource.js</caption>
     * region_tag:compute_v1_generated_Projects_DisableXpnResource_async
     */
    disableXpnResource(request?: protos.google.cloud.compute.v1.IDisableXpnResourceProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    disableXpnResource(request: protos.google.cloud.compute.v1.IDisableXpnResourceProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IDisableXpnResourceProjectRequest | null | undefined, {} | null | undefined>): void;
    disableXpnResource(request: protos.google.cloud.compute.v1.IDisableXpnResourceProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IDisableXpnResourceProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Enable this project as a shared VPC host project.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.enable_xpn_host.js</caption>
     * region_tag:compute_v1_generated_Projects_EnableXpnHost_async
     */
    enableXpnHost(request?: protos.google.cloud.compute.v1.IEnableXpnHostProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    enableXpnHost(request: protos.google.cloud.compute.v1.IEnableXpnHostProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IEnableXpnHostProjectRequest | null | undefined, {} | null | undefined>): void;
    enableXpnHost(request: protos.google.cloud.compute.v1.IEnableXpnHostProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IEnableXpnHostProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Enable service resource (a.k.a service project) for a host project, so that
     * subnets in the host project can be used by instances in the service
     * project.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {google.cloud.compute.v1.ProjectsEnableXpnResourceRequest} request.projectsEnableXpnResourceRequestResource
     *   The body resource for this request
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.enable_xpn_resource.js</caption>
     * region_tag:compute_v1_generated_Projects_EnableXpnResource_async
     */
    enableXpnResource(request?: protos.google.cloud.compute.v1.IEnableXpnResourceProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    enableXpnResource(request: protos.google.cloud.compute.v1.IEnableXpnResourceProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IEnableXpnResourceProjectRequest | null | undefined, {} | null | undefined>): void;
    enableXpnResource(request: protos.google.cloud.compute.v1.IEnableXpnResourceProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IEnableXpnResourceProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns the specified Project resource.
     *
     * To decrease latency for this method, you can optionally omit any unneeded
     * information from the response by using a field mask. This practice is
     * especially recommended for unused quota information (the `quotas` field).
     * To exclude one or more fields, set your request's `fields` query parameter
     * to only include the fields you need. For example, to only include the `id`
     * and `selfLink` fields, add the query parameter `?fields=id,selfLink` to
     * your request.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.compute.v1.Project|Project}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/projects.get.js</caption>
     * region_tag:compute_v1_generated_Projects_Get_async
     */
    get(request?: protos.google.cloud.compute.v1.IGetProjectRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1.IProject,
        protos.google.cloud.compute.v1.IGetProjectRequest | undefined,
        {} | undefined
    ]>;
    get(request: protos.google.cloud.compute.v1.IGetProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IProject, protos.google.cloud.compute.v1.IGetProjectRequest | null | undefined, {} | null | undefined>): void;
    get(request: protos.google.cloud.compute.v1.IGetProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IProject, protos.google.cloud.compute.v1.IGetProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Gets the shared VPC host project that this project links to. May be empty
     * if no link exists.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.cloud.compute.v1.Project|Project}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/projects.get_xpn_host.js</caption>
     * region_tag:compute_v1_generated_Projects_GetXpnHost_async
     */
    getXpnHost(request?: protos.google.cloud.compute.v1.IGetXpnHostProjectRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1.IProject,
        protos.google.cloud.compute.v1.IGetXpnHostProjectRequest | undefined,
        {} | undefined
    ]>;
    getXpnHost(request: protos.google.cloud.compute.v1.IGetXpnHostProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IProject, protos.google.cloud.compute.v1.IGetXpnHostProjectRequest | null | undefined, {} | null | undefined>): void;
    getXpnHost(request: protos.google.cloud.compute.v1.IGetXpnHostProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IProject, protos.google.cloud.compute.v1.IGetXpnHostProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Moves a persistent disk from one zone to another.
     * *Note*: The moveDisk API will be deprecated on September 29, 2026.
     *
     * Starting September 29, 2025, you can't use the moveDisk API on new
     * projects. To move a disk to a different region or zone, follow the steps in
     * [Change the location of a
     * disk](https://cloud.google.com/compute/docs/disks/migrate-to-hyperdisk#migrate-to-hd).
     *
     * Projects that already use the moveDisk API can continue usage until
     * September 29, 2026.
     *
     * Starting November 1, 2025, API responses will include a warning message in
     * the response body about the upcoming deprecation. You can skip the message
     * to continue using the service without interruption.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.cloud.compute.v1.DiskMoveRequest} request.diskMoveRequestResource
     *   The body resource for this request
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.move_disk.js</caption>
     * region_tag:compute_v1_generated_Projects_MoveDisk_async
     */
    moveDisk(request?: protos.google.cloud.compute.v1.IMoveDiskProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    moveDisk(request: protos.google.cloud.compute.v1.IMoveDiskProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IMoveDiskProjectRequest | null | undefined, {} | null | undefined>): void;
    moveDisk(request: protos.google.cloud.compute.v1.IMoveDiskProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IMoveDiskProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Moves an instance and its attached persistent disks from one zone to
     * another.
     * *Note*: Moving VMs or disks by using this method might
     *  cause unexpected behavior. For more information, see the [known
     *  issue](/compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior).
     * [Deprecated] This method is deprecated. See [moving instance across
     * zones](/compute/docs/instances/moving-instance-across-zones) instead.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.cloud.compute.v1.InstanceMoveRequest} request.instanceMoveRequestResource
     *   The body resource for this request
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.move_instance.js</caption>
     * region_tag:compute_v1_generated_Projects_MoveInstance_async
     */
    moveInstance(request?: protos.google.cloud.compute.v1.IMoveInstanceProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    moveInstance(request: protos.google.cloud.compute.v1.IMoveInstanceProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IMoveInstanceProjectRequest | null | undefined, {} | null | undefined>): void;
    moveInstance(request: protos.google.cloud.compute.v1.IMoveInstanceProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.IMoveInstanceProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the
     * billing account of the project must be subscribed to Cloud Armor
     * Enterprise. See Subscribing
     * to Cloud Armor Enterprise for more information.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {google.cloud.compute.v1.ProjectsSetCloudArmorTierRequest} request.projectsSetCloudArmorTierRequestResource
     *   The body resource for this request
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.set_cloud_armor_tier.js</caption>
     * region_tag:compute_v1_generated_Projects_SetCloudArmorTier_async
     */
    setCloudArmorTier(request?: protos.google.cloud.compute.v1.ISetCloudArmorTierProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    setCloudArmorTier(request: protos.google.cloud.compute.v1.ISetCloudArmorTierProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.ISetCloudArmorTierProjectRequest | null | undefined, {} | null | undefined>): void;
    setCloudArmorTier(request: protos.google.cloud.compute.v1.ISetCloudArmorTierProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.ISetCloudArmorTierProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets metadata common to all instances within the specified project using
     * the data included in the request.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.cloud.compute.v1.Metadata} request.metadataResource
     *   The body resource for this request
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.set_common_instance_metadata.js</caption>
     * region_tag:compute_v1_generated_Projects_SetCommonInstanceMetadata_async
     */
    setCommonInstanceMetadata(request?: protos.google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    setCommonInstanceMetadata(request: protos.google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest | null | undefined, {} | null | undefined>): void;
    setCommonInstanceMetadata(request: protos.google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.ISetCommonInstanceMetadataProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the default network tier of the project. The default network tier is
     * used when an address/forwardingRule/instance is created without specifying
     * the network tier field.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {google.cloud.compute.v1.ProjectsSetDefaultNetworkTierRequest} request.projectsSetDefaultNetworkTierRequestResource
     *   The body resource for this request
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.set_default_network_tier.js</caption>
     * region_tag:compute_v1_generated_Projects_SetDefaultNetworkTier_async
     */
    setDefaultNetworkTier(request?: protos.google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    setDefaultNetworkTier(request: protos.google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest | null | undefined, {} | null | undefined>): void;
    setDefaultNetworkTier(request: protos.google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.ISetDefaultNetworkTierProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Enables the usage export feature and sets theusage export bucket
     * where reports are stored. If you provide an empty request body using this
     * method, the usage export feature will be disabled.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.requestId
     *   An optional request ID to identify requests. Specify a unique request ID so
     *   that if you must retry your request, the server will know to ignore the
     *   request if it has already been completed.
     *
     *   For example, consider a situation where you make an initial request and
     *   the request times out. If you make the request again with the same
     *   request ID, the server can check if original operation with the same
     *   request ID was received, and if so, will ignore the second request. This
     *   prevents clients from accidentally creating duplicate commitments.
     *
     *   The request ID must be
     *   a valid UUID with the exception that zero UUID is not supported
     *   (00000000-0000-0000-0000-000000000000).
     * @param {google.cloud.compute.v1.UsageExportLocation} request.usageExportLocationResource
     *   The body resource for this request
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing
     *   a long running operation.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#long-running-operations | documentation }
     *   for more details and examples.
     *   This method is considered to be in beta. This means while
     *   stable it is still a work-in-progress and under active development,
     *   and might get backwards-incompatible changes at any time.
     *   `.promise()` is not supported yet.
     * @example <caption>include:samples/generated/v1/projects.set_usage_export_bucket.js</caption>
     * region_tag:compute_v1_generated_Projects_SetUsageExportBucket_async
     */
    setUsageExportBucket(request?: protos.google.cloud.compute.v1.ISetUsageExportBucketProjectRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1.IOperation, null>,
        protos.google.cloud.compute.v1.IOperation | undefined,
        {} | undefined
    ]>;
    setUsageExportBucket(request: protos.google.cloud.compute.v1.ISetUsageExportBucketProjectRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.ISetUsageExportBucketProjectRequest | null | undefined, {} | null | undefined>): void;
    setUsageExportBucket(request: protos.google.cloud.compute.v1.ISetUsageExportBucketProjectRequest, callback: Callback<protos.google.cloud.compute.v1.IOperation, protos.google.cloud.compute.v1.ISetUsageExportBucketProjectRequest | null | undefined, {} | null | undefined>): void;
    /**
    * Gets service resources (a.k.a service project) associated with this host
    * project.
    *
    * @param {Object} request
    *   The request object that will be sent.
    * @param {string} request.filter
    *   A filter expression that filters resources listed in the response. Most
    *   Compute resources support two types of filter expressions:
    *   expressions that support regular expressions and expressions that follow
    *   API improvement proposal AIP-160.
    *   These two types of filter expressions cannot be mixed in one request.
    *
    *   If you want to use AIP-160, your expression must specify the field name, an
    *   operator, and the value that you want to use for filtering. The value
    *   must be a string, a number, or a boolean. The operator
    *   must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`.
    *
    *   For example, if you are filtering Compute Engine instances, you can
    *   exclude instances named `example-instance` by specifying
    *   `name != example-instance`.
    *
    *   The `:*` comparison can be used to test whether a key has been defined.
    *   For example, to find all objects with `owner` label use:
    *   ```
    *   labels.owner:*
    *   ```
    *
    *   You can also filter nested fields. For example, you could specify
    *   `scheduling.automaticRestart = false` to include instances only
    *   if they are not scheduled for automatic restarts. You can use filtering
    *   on nested fields to filter based onresource labels.
    *
    *   To filter on multiple expressions, provide each separate expression within
    *   parentheses. For example:
    *   ```
    *   (scheduling.automaticRestart = true)
    *   (cpuPlatform = "Intel Skylake")
    *   ```
    *   By default, each expression is an `AND` expression. However, you
    *   can include `AND` and `OR` expressions explicitly.
    *   For example:
    *   ```
    *   (cpuPlatform = "Intel Skylake") OR
    *   (cpuPlatform = "Intel Broadwell") AND
    *   (scheduling.automaticRestart = true)
    *   ```
    *
    *   If you want to use a regular expression, use the `eq` (equal) or `ne`
    *   (not equal) operator against a single un-parenthesized expression with or
    *   without quotes or against multiple parenthesized expressions. Examples:
    *
    *   `fieldname eq unquoted literal`
    *   `fieldname eq 'single quoted literal'`
    *   `fieldname eq "double quoted literal"`
    *   `(fieldname1 eq literal) (fieldname2 ne "literal")`
    *
    *   The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
    *   The literal value must match the entire field.
    *
    *   For example, to filter for instances that do not end with name "instance",
    *   you would use `name ne .*instance`.
    *
    *   You cannot combine constraints on multiple fields using regular
    *   expressions.
    * @param {number} request.maxResults
    *   The maximum number of results per page that should be returned.
    *   If the number of available results is larger than `maxResults`,
    *   Compute Engine returns a `nextPageToken` that can be used to get
    *   the next page of results in subsequent list requests. Acceptable values are
    *   `0` to `500`, inclusive. (Default: `500`)
    * @param {string} request.orderBy
    *   Sorts list results by a certain order. By default, results
    *   are returned in alphanumerical order based on the resource name.
    *
    *   You can also sort results in descending order based on the creation
    *   timestamp using `orderBy="creationTimestamp desc"`. This sorts
    *   results based on the `creationTimestamp` field in
    *   reverse chronological order (newest result first). Use this to sort
    *   resources like operations so that the newest operation is returned first.
    *
    *   Currently, only sorting by `name` or
    *   `creationTimestamp desc` is supported.
    * @param {string} request.pageToken
    *   Specifies a page token to use. Set `pageToken` to the
    *   `nextPageToken` returned by a previous list request to get
    *   the next page of results.
    * @param {string} request.project
    *   Project ID for this request.
    * @param {boolean} request.returnPartialSuccess
    *   Opt-in for partial success behavior which provides partial results in case
    *   of failure. The default value is false.
    *
    *   For example, when partial success behavior is enabled, aggregatedList for a
    *   single zone scope either returns all resources in the zone or no resources,
    *   with an error code.
    * @param {object} [options]
    *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
    * @returns {Promise} - The promise which resolves to an array.
    *   The first element of the array is Array of {@link protos.google.cloud.compute.v1.XpnResourceId|XpnResourceId}.
    *   The client library will perform auto-pagination by default: it will call the API as many
    *   times as needed and will merge results from all the pages into this array.
    *   Note that it can affect your quota.
    *   We recommend using `getXpnResourcesAsync()`
    *   method described below for async iteration which you can stop as needed.
    *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
    *   for more details and examples.
    */
    getXpnResources(request?: protos.google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1.IXpnResourceId[],
        protos.google.cloud.compute.v1.IGetXpnResourcesProjectsRequest | null,
        protos.google.cloud.compute.v1.IProjectsGetXpnResources
    ]>;
    getXpnResources(request: protos.google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, protos.google.cloud.compute.v1.IProjectsGetXpnResources | null | undefined, protos.google.cloud.compute.v1.IXpnResourceId>): void;
    getXpnResources(request: protos.google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, callback: PaginationCallback<protos.google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, protos.google.cloud.compute.v1.IProjectsGetXpnResources | null | undefined, protos.google.cloud.compute.v1.IXpnResourceId>): void;
    /**
     * Equivalent to `getXpnResources`, but returns a NodeJS Stream object.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.filter
     *   A filter expression that filters resources listed in the response. Most
     *   Compute resources support two types of filter expressions:
     *   expressions that support regular expressions and expressions that follow
     *   API improvement proposal AIP-160.
     *   These two types of filter expressions cannot be mixed in one request.
     *
     *   If you want to use AIP-160, your expression must specify the field name, an
     *   operator, and the value that you want to use for filtering. The value
     *   must be a string, a number, or a boolean. The operator
     *   must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`.
     *
     *   For example, if you are filtering Compute Engine instances, you can
     *   exclude instances named `example-instance` by specifying
     *   `name != example-instance`.
     *
     *   The `:*` comparison can be used to test whether a key has been defined.
     *   For example, to find all objects with `owner` label use:
     *   ```
     *   labels.owner:*
     *   ```
     *
     *   You can also filter nested fields. For example, you could specify
     *   `scheduling.automaticRestart = false` to include instances only
     *   if they are not scheduled for automatic restarts. You can use filtering
     *   on nested fields to filter based onresource labels.
     *
     *   To filter on multiple expressions, provide each separate expression within
     *   parentheses. For example:
     *   ```
     *   (scheduling.automaticRestart = true)
     *   (cpuPlatform = "Intel Skylake")
     *   ```
     *   By default, each expression is an `AND` expression. However, you
     *   can include `AND` and `OR` expressions explicitly.
     *   For example:
     *   ```
     *   (cpuPlatform = "Intel Skylake") OR
     *   (cpuPlatform = "Intel Broadwell") AND
     *   (scheduling.automaticRestart = true)
     *   ```
     *
     *   If you want to use a regular expression, use the `eq` (equal) or `ne`
     *   (not equal) operator against a single un-parenthesized expression with or
     *   without quotes or against multiple parenthesized expressions. Examples:
     *
     *   `fieldname eq unquoted literal`
     *   `fieldname eq 'single quoted literal'`
     *   `fieldname eq "double quoted literal"`
     *   `(fieldname1 eq literal) (fieldname2 ne "literal")`
     *
     *   The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
     *   The literal value must match the entire field.
     *
     *   For example, to filter for instances that do not end with name "instance",
     *   you would use `name ne .*instance`.
     *
     *   You cannot combine constraints on multiple fields using regular
     *   expressions.
     * @param {number} request.maxResults
     *   The maximum number of results per page that should be returned.
     *   If the number of available results is larger than `maxResults`,
     *   Compute Engine returns a `nextPageToken` that can be used to get
     *   the next page of results in subsequent list requests. Acceptable values are
     *   `0` to `500`, inclusive. (Default: `500`)
     * @param {string} request.orderBy
     *   Sorts list results by a certain order. By default, results
     *   are returned in alphanumerical order based on the resource name.
     *
     *   You can also sort results in descending order based on the creation
     *   timestamp using `orderBy="creationTimestamp desc"`. This sorts
     *   results based on the `creationTimestamp` field in
     *   reverse chronological order (newest result first). Use this to sort
     *   resources like operations so that the newest operation is returned first.
     *
     *   Currently, only sorting by `name` or
     *   `creationTimestamp desc` is supported.
     * @param {string} request.pageToken
     *   Specifies a page token to use. Set `pageToken` to the
     *   `nextPageToken` returned by a previous list request to get
     *   the next page of results.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {boolean} request.returnPartialSuccess
     *   Opt-in for partial success behavior which provides partial results in case
     *   of failure. The default value is false.
     *
     *   For example, when partial success behavior is enabled, aggregatedList for a
     *   single zone scope either returns all resources in the zone or no resources,
     *   with an error code.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Stream}
     *   An object stream which emits an object representing {@link protos.google.cloud.compute.v1.XpnResourceId|XpnResourceId} on 'data' event.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed. Note that it can affect your quota.
     *   We recommend using `getXpnResourcesAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    getXpnResourcesStream(request?: protos.google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `getXpnResources`, but returns an iterable object.
     *
     * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.filter
     *   A filter expression that filters resources listed in the response. Most
     *   Compute resources support two types of filter expressions:
     *   expressions that support regular expressions and expressions that follow
     *   API improvement proposal AIP-160.
     *   These two types of filter expressions cannot be mixed in one request.
     *
     *   If you want to use AIP-160, your expression must specify the field name, an
     *   operator, and the value that you want to use for filtering. The value
     *   must be a string, a number, or a boolean. The operator
     *   must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`.
     *
     *   For example, if you are filtering Compute Engine instances, you can
     *   exclude instances named `example-instance` by specifying
     *   `name != example-instance`.
     *
     *   The `:*` comparison can be used to test whether a key has been defined.
     *   For example, to find all objects with `owner` label use:
     *   ```
     *   labels.owner:*
     *   ```
     *
     *   You can also filter nested fields. For example, you could specify
     *   `scheduling.automaticRestart = false` to include instances only
     *   if they are not scheduled for automatic restarts. You can use filtering
     *   on nested fields to filter based onresource labels.
     *
     *   To filter on multiple expressions, provide each separate expression within
     *   parentheses. For example:
     *   ```
     *   (scheduling.automaticRestart = true)
     *   (cpuPlatform = "Intel Skylake")
     *   ```
     *   By default, each expression is an `AND` expression. However, you
     *   can include `AND` and `OR` expressions explicitly.
     *   For example:
     *   ```
     *   (cpuPlatform = "Intel Skylake") OR
     *   (cpuPlatform = "Intel Broadwell") AND
     *   (scheduling.automaticRestart = true)
     *   ```
     *
     *   If you want to use a regular expression, use the `eq` (equal) or `ne`
     *   (not equal) operator against a single un-parenthesized expression with or
     *   without quotes or against multiple parenthesized expressions. Examples:
     *
     *   `fieldname eq unquoted literal`
     *   `fieldname eq 'single quoted literal'`
     *   `fieldname eq "double quoted literal"`
     *   `(fieldname1 eq literal) (fieldname2 ne "literal")`
     *
     *   The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
     *   The literal value must match the entire field.
     *
     *   For example, to filter for instances that do not end with name "instance",
     *   you would use `name ne .*instance`.
     *
     *   You cannot combine constraints on multiple fields using regular
     *   expressions.
     * @param {number} request.maxResults
     *   The maximum number of results per page that should be returned.
     *   If the number of available results is larger than `maxResults`,
     *   Compute Engine returns a `nextPageToken` that can be used to get
     *   the next page of results in subsequent list requests. Acceptable values are
     *   `0` to `500`, inclusive. (Default: `500`)
     * @param {string} request.orderBy
     *   Sorts list results by a certain order. By default, results
     *   are returned in alphanumerical order based on the resource name.
     *
     *   You can also sort results in descending order based on the creation
     *   timestamp using `orderBy="creationTimestamp desc"`. This sorts
     *   results based on the `creationTimestamp` field in
     *   reverse chronological order (newest result first). Use this to sort
     *   resources like operations so that the newest operation is returned first.
     *
     *   Currently, only sorting by `name` or
     *   `creationTimestamp desc` is supported.
     * @param {string} request.pageToken
     *   Specifies a page token to use. Set `pageToken` to the
     *   `nextPageToken` returned by a previous list request to get
     *   the next page of results.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {boolean} request.returnPartialSuccess
     *   Opt-in for partial success behavior which provides partial results in case
     *   of failure. The default value is false.
     *
     *   For example, when partial success behavior is enabled, aggregatedList for a
     *   single zone scope either returns all resources in the zone or no resources,
     *   with an error code.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Object}
     *   An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
     *   When you iterate the returned iterable, each element will be an object representing
     *   {@link protos.google.cloud.compute.v1.XpnResourceId|XpnResourceId}. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/projects.get_xpn_resources.js</caption>
     * region_tag:compute_v1_generated_Projects_GetXpnResources_async
     */
    getXpnResourcesAsync(request?: protos.google.cloud.compute.v1.IGetXpnResourcesProjectsRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.compute.v1.IXpnResourceId>;
    /**
    * Lists all shared VPC host projects visible to the user in an organization.
    *
    * @param {Object} request
    *   The request object that will be sent.
    * @param {string} request.filter
    *   A filter expression that filters resources listed in the response. Most
    *   Compute resources support two types of filter expressions:
    *   expressions that support regular expressions and expressions that follow
    *   API improvement proposal AIP-160.
    *   These two types of filter expressions cannot be mixed in one request.
    *
    *   If you want to use AIP-160, your expression must specify the field name, an
    *   operator, and the value that you want to use for filtering. The value
    *   must be a string, a number, or a boolean. The operator
    *   must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`.
    *
    *   For example, if you are filtering Compute Engine instances, you can
    *   exclude instances named `example-instance` by specifying
    *   `name != example-instance`.
    *
    *   The `:*` comparison can be used to test whether a key has been defined.
    *   For example, to find all objects with `owner` label use:
    *   ```
    *   labels.owner:*
    *   ```
    *
    *   You can also filter nested fields. For example, you could specify
    *   `scheduling.automaticRestart = false` to include instances only
    *   if they are not scheduled for automatic restarts. You can use filtering
    *   on nested fields to filter based onresource labels.
    *
    *   To filter on multiple expressions, provide each separate expression within
    *   parentheses. For example:
    *   ```
    *   (scheduling.automaticRestart = true)
    *   (cpuPlatform = "Intel Skylake")
    *   ```
    *   By default, each expression is an `AND` expression. However, you
    *   can include `AND` and `OR` expressions explicitly.
    *   For example:
    *   ```
    *   (cpuPlatform = "Intel Skylake") OR
    *   (cpuPlatform = "Intel Broadwell") AND
    *   (scheduling.automaticRestart = true)
    *   ```
    *
    *   If you want to use a regular expression, use the `eq` (equal) or `ne`
    *   (not equal) operator against a single un-parenthesized expression with or
    *   without quotes or against multiple parenthesized expressions. Examples:
    *
    *   `fieldname eq unquoted literal`
    *   `fieldname eq 'single quoted literal'`
    *   `fieldname eq "double quoted literal"`
    *   `(fieldname1 eq literal) (fieldname2 ne "literal")`
    *
    *   The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
    *   The literal value must match the entire field.
    *
    *   For example, to filter for instances that do not end with name "instance",
    *   you would use `name ne .*instance`.
    *
    *   You cannot combine constraints on multiple fields using regular
    *   expressions.
    * @param {number} request.maxResults
    *   The maximum number of results per page that should be returned.
    *   If the number of available results is larger than `maxResults`,
    *   Compute Engine returns a `nextPageToken` that can be used to get
    *   the next page of results in subsequent list requests. Acceptable values are
    *   `0` to `500`, inclusive. (Default: `500`)
    * @param {string} request.orderBy
    *   Sorts list results by a certain order. By default, results
    *   are returned in alphanumerical order based on the resource name.
    *
    *   You can also sort results in descending order based on the creation
    *   timestamp using `orderBy="creationTimestamp desc"`. This sorts
    *   results based on the `creationTimestamp` field in
    *   reverse chronological order (newest result first). Use this to sort
    *   resources like operations so that the newest operation is returned first.
    *
    *   Currently, only sorting by `name` or
    *   `creationTimestamp desc` is supported.
    * @param {string} request.pageToken
    *   Specifies a page token to use. Set `pageToken` to the
    *   `nextPageToken` returned by a previous list request to get
    *   the next page of results.
    * @param {string} request.project
    *   Project ID for this request.
    * @param {google.cloud.compute.v1.ProjectsListXpnHostsRequest} request.projectsListXpnHostsRequestResource
    *   The body resource for this request
    * @param {boolean} request.returnPartialSuccess
    *   Opt-in for partial success behavior which provides partial results in case
    *   of failure. The default value is false.
    *
    *   For example, when partial success behavior is enabled, aggregatedList for a
    *   single zone scope either returns all resources in the zone or no resources,
    *   with an error code.
    * @param {object} [options]
    *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
    * @returns {Promise} - The promise which resolves to an array.
    *   The first element of the array is Array of {@link protos.google.cloud.compute.v1.Project|Project}.
    *   The client library will perform auto-pagination by default: it will call the API as many
    *   times as needed and will merge results from all the pages into this array.
    *   Note that it can affect your quota.
    *   We recommend using `listXpnHostsAsync()`
    *   method described below for async iteration which you can stop as needed.
    *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
    *   for more details and examples.
    */
    listXpnHosts(request?: protos.google.cloud.compute.v1.IListXpnHostsProjectsRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1.IProject[],
        protos.google.cloud.compute.v1.IListXpnHostsProjectsRequest | null,
        protos.google.cloud.compute.v1.IXpnHostList
    ]>;
    listXpnHosts(request: protos.google.cloud.compute.v1.IListXpnHostsProjectsRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.compute.v1.IListXpnHostsProjectsRequest, protos.google.cloud.compute.v1.IXpnHostList | null | undefined, protos.google.cloud.compute.v1.IProject>): void;
    listXpnHosts(request: protos.google.cloud.compute.v1.IListXpnHostsProjectsRequest, callback: PaginationCallback<protos.google.cloud.compute.v1.IListXpnHostsProjectsRequest, protos.google.cloud.compute.v1.IXpnHostList | null | undefined, protos.google.cloud.compute.v1.IProject>): void;
    /**
     * Equivalent to `listXpnHosts`, but returns a NodeJS Stream object.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.filter
     *   A filter expression that filters resources listed in the response. Most
     *   Compute resources support two types of filter expressions:
     *   expressions that support regular expressions and expressions that follow
     *   API improvement proposal AIP-160.
     *   These two types of filter expressions cannot be mixed in one request.
     *
     *   If you want to use AIP-160, your expression must specify the field name, an
     *   operator, and the value that you want to use for filtering. The value
     *   must be a string, a number, or a boolean. The operator
     *   must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`.
     *
     *   For example, if you are filtering Compute Engine instances, you can
     *   exclude instances named `example-instance` by specifying
     *   `name != example-instance`.
     *
     *   The `:*` comparison can be used to test whether a key has been defined.
     *   For example, to find all objects with `owner` label use:
     *   ```
     *   labels.owner:*
     *   ```
     *
     *   You can also filter nested fields. For example, you could specify
     *   `scheduling.automaticRestart = false` to include instances only
     *   if they are not scheduled for automatic restarts. You can use filtering
     *   on nested fields to filter based onresource labels.
     *
     *   To filter on multiple expressions, provide each separate expression within
     *   parentheses. For example:
     *   ```
     *   (scheduling.automaticRestart = true)
     *   (cpuPlatform = "Intel Skylake")
     *   ```
     *   By default, each expression is an `AND` expression. However, you
     *   can include `AND` and `OR` expressions explicitly.
     *   For example:
     *   ```
     *   (cpuPlatform = "Intel Skylake") OR
     *   (cpuPlatform = "Intel Broadwell") AND
     *   (scheduling.automaticRestart = true)
     *   ```
     *
     *   If you want to use a regular expression, use the `eq` (equal) or `ne`
     *   (not equal) operator against a single un-parenthesized expression with or
     *   without quotes or against multiple parenthesized expressions. Examples:
     *
     *   `fieldname eq unquoted literal`
     *   `fieldname eq 'single quoted literal'`
     *   `fieldname eq "double quoted literal"`
     *   `(fieldname1 eq literal) (fieldname2 ne "literal")`
     *
     *   The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
     *   The literal value must match the entire field.
     *
     *   For example, to filter for instances that do not end with name "instance",
     *   you would use `name ne .*instance`.
     *
     *   You cannot combine constraints on multiple fields using regular
     *   expressions.
     * @param {number} request.maxResults
     *   The maximum number of results per page that should be returned.
     *   If the number of available results is larger than `maxResults`,
     *   Compute Engine returns a `nextPageToken` that can be used to get
     *   the next page of results in subsequent list requests. Acceptable values are
     *   `0` to `500`, inclusive. (Default: `500`)
     * @param {string} request.orderBy
     *   Sorts list results by a certain order. By default, results
     *   are returned in alphanumerical order based on the resource name.
     *
     *   You can also sort results in descending order based on the creation
     *   timestamp using `orderBy="creationTimestamp desc"`. This sorts
     *   results based on the `creationTimestamp` field in
     *   reverse chronological order (newest result first). Use this to sort
     *   resources like operations so that the newest operation is returned first.
     *
     *   Currently, only sorting by `name` or
     *   `creationTimestamp desc` is supported.
     * @param {string} request.pageToken
     *   Specifies a page token to use. Set `pageToken` to the
     *   `nextPageToken` returned by a previous list request to get
     *   the next page of results.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {google.cloud.compute.v1.ProjectsListXpnHostsRequest} request.projectsListXpnHostsRequestResource
     *   The body resource for this request
     * @param {boolean} request.returnPartialSuccess
     *   Opt-in for partial success behavior which provides partial results in case
     *   of failure. The default value is false.
     *
     *   For example, when partial success behavior is enabled, aggregatedList for a
     *   single zone scope either returns all resources in the zone or no resources,
     *   with an error code.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Stream}
     *   An object stream which emits an object representing {@link protos.google.cloud.compute.v1.Project|Project} on 'data' event.
     *   The client library will perform auto-pagination by default: it will call the API as many
     *   times as needed. Note that it can affect your quota.
     *   We recommend using `listXpnHostsAsync()`
     *   method described below for async iteration which you can stop as needed.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     */
    listXpnHostsStream(request?: protos.google.cloud.compute.v1.IListXpnHostsProjectsRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `listXpnHosts`, but returns an iterable object.
     *
     * `for`-`await`-`of` syntax is used with the iterable to get response elements on-demand.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.filter
     *   A filter expression that filters resources listed in the response. Most
     *   Compute resources support two types of filter expressions:
     *   expressions that support regular expressions and expressions that follow
     *   API improvement proposal AIP-160.
     *   These two types of filter expressions cannot be mixed in one request.
     *
     *   If you want to use AIP-160, your expression must specify the field name, an
     *   operator, and the value that you want to use for filtering. The value
     *   must be a string, a number, or a boolean. The operator
     *   must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`.
     *
     *   For example, if you are filtering Compute Engine instances, you can
     *   exclude instances named `example-instance` by specifying
     *   `name != example-instance`.
     *
     *   The `:*` comparison can be used to test whether a key has been defined.
     *   For example, to find all objects with `owner` label use:
     *   ```
     *   labels.owner:*
     *   ```
     *
     *   You can also filter nested fields. For example, you could specify
     *   `scheduling.automaticRestart = false` to include instances only
     *   if they are not scheduled for automatic restarts. You can use filtering
     *   on nested fields to filter based onresource labels.
     *
     *   To filter on multiple expressions, provide each separate expression within
     *   parentheses. For example:
     *   ```
     *   (scheduling.automaticRestart = true)
     *   (cpuPlatform = "Intel Skylake")
     *   ```
     *   By default, each expression is an `AND` expression. However, you
     *   can include `AND` and `OR` expressions explicitly.
     *   For example:
     *   ```
     *   (cpuPlatform = "Intel Skylake") OR
     *   (cpuPlatform = "Intel Broadwell") AND
     *   (scheduling.automaticRestart = true)
     *   ```
     *
     *   If you want to use a regular expression, use the `eq` (equal) or `ne`
     *   (not equal) operator against a single un-parenthesized expression with or
     *   without quotes or against multiple parenthesized expressions. Examples:
     *
     *   `fieldname eq unquoted literal`
     *   `fieldname eq 'single quoted literal'`
     *   `fieldname eq "double quoted literal"`
     *   `(fieldname1 eq literal) (fieldname2 ne "literal")`
     *
     *   The literal value is interpreted as a regular expression using GoogleRE2 library syntax.
     *   The literal value must match the entire field.
     *
     *   For example, to filter for instances that do not end with name "instance",
     *   you would use `name ne .*instance`.
     *
     *   You cannot combine constraints on multiple fields using regular
     *   expressions.
     * @param {number} request.maxResults
     *   The maximum number of results per page that should be returned.
     *   If the number of available results is larger than `maxResults`,
     *   Compute Engine returns a `nextPageToken` that can be used to get
     *   the next page of results in subsequent list requests. Acceptable values are
     *   `0` to `500`, inclusive. (Default: `500`)
     * @param {string} request.orderBy
     *   Sorts list results by a certain order. By default, results
     *   are returned in alphanumerical order based on the resource name.
     *
     *   You can also sort results in descending order based on the creation
     *   timestamp using `orderBy="creationTimestamp desc"`. This sorts
     *   results based on the `creationTimestamp` field in
     *   reverse chronological order (newest result first). Use this to sort
     *   resources like operations so that the newest operation is returned first.
     *
     *   Currently, only sorting by `name` or
     *   `creationTimestamp desc` is supported.
     * @param {string} request.pageToken
     *   Specifies a page token to use. Set `pageToken` to the
     *   `nextPageToken` returned by a previous list request to get
     *   the next page of results.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {google.cloud.compute.v1.ProjectsListXpnHostsRequest} request.projectsListXpnHostsRequestResource
     *   The body resource for this request
     * @param {boolean} request.returnPartialSuccess
     *   Opt-in for partial success behavior which provides partial results in case
     *   of failure. The default value is false.
     *
     *   For example, when partial success behavior is enabled, aggregatedList for a
     *   single zone scope either returns all resources in the zone or no resources,
     *   with an error code.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Object}
     *   An iterable Object that allows {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols | async iteration }.
     *   When you iterate the returned iterable, each element will be an object representing
     *   {@link protos.google.cloud.compute.v1.Project|Project}. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/projects.list_xpn_hosts.js</caption>
     * region_tag:compute_v1_generated_Projects_ListXpnHosts_async
     */
    listXpnHostsAsync(request?: protos.google.cloud.compute.v1.IListXpnHostsProjectsRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.compute.v1.IProject>;
    /**
     * Terminate the gRPC channel and close the client.
     *
     * The client will no longer be usable and all future behavior is undefined.
     * @returns {Promise} A promise that resolves when the client is closed.
     */
    close(): Promise<void>;
}
