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 Instances API.
 * @class
 * @memberof v1beta
 */
export declare class InstancesClient {
    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;
    };
    instancesStub?: Promise<{
        [name: string]: Function;
    }>;
    /**
     * Construct an instance of InstancesClient.
     *
     * @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 InstancesClient({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;
    /**
     * Adds an access config to an instance's network interface.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.cloud.compute.v1beta.AccessConfig} request.accessConfigResource
     *   The body resource for this request
     * @param {string} request.instance
     *   The instance name for this request.
     * @param {string} request.networkInterface
     *   The name of the network interface to add to this instance.
     * @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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.add_access_config.js</caption>
     * region_tag:compute_v1beta_generated_Instances_AddAccessConfig_async
     */
    addAccessConfig(request?: protos.google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    addAccessConfig(request: protos.google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    addAccessConfig(request: protos.google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IAddAccessConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Adds one dynamic network interface to an active instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   The instance name for this request stored as resource_id.
     *   Name should conform to RFC1035 or be an unsigned long integer.
     * @param {google.cloud.compute.v1beta.NetworkInterface} request.networkInterfaceResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.add_network_interface.js</caption>
     * region_tag:compute_v1beta_generated_Instances_AddNetworkInterface_async
     */
    addNetworkInterface(request?: protos.google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    addNetworkInterface(request: protos.google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest | null | undefined, {} | null | undefined>): void;
    addNetworkInterface(request: protos.google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IAddNetworkInterfaceInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Adds existing resource policies to an instance. You can only add one
     * policy right now which will be applied to this instance for scheduling live
     * migrations.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   The instance name for this request.
     * @param {google.cloud.compute.v1beta.InstancesAddResourcePoliciesRequest} request.instancesAddResourcePoliciesRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.add_resource_policies.js</caption>
     * region_tag:compute_v1beta_generated_Instances_AddResourcePolicies_async
     */
    addResourcePolicies(request?: protos.google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    addResourcePolicies(request: protos.google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest | null | undefined, {} | null | undefined>): void;
    addResourcePolicies(request: protos.google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IAddResourcePoliciesInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Attaches an existing Disk resource to an instance. You must first
     * create the disk before you can attach it. It is not possible to create
     * and attach a disk at the same time. For more information, readAdding a
     * persistent disk to your instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.cloud.compute.v1beta.AttachedDisk} request.attachedDiskResource
     *   The body resource for this request
     * @param {boolean} request.forceAttach
     *   Whether to force attach the regional disk even if it's currently attached
     *   to another instance. If you try to force attach a zonal disk to an
     *   instance, you will receive an error.
     * @param {string} request.instance
     *   The instance name 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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.attach_disk.js</caption>
     * region_tag:compute_v1beta_generated_Instances_AttachDisk_async
     */
    attachDisk(request?: protos.google.cloud.compute.v1beta.IAttachDiskInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    attachDisk(request: protos.google.cloud.compute.v1beta.IAttachDiskInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IAttachDiskInstanceRequest | null | undefined, {} | null | undefined>): void;
    attachDisk(request: protos.google.cloud.compute.v1beta.IAttachDiskInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IAttachDiskInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Creates multiple instances. Count specifies the number of instances to
     * create. For more information, seeAbout bulk
     * creation of VMs.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.cloud.compute.v1beta.BulkInsertInstanceResource} request.bulkInsertInstanceResourceResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.bulk_insert.js</caption>
     * region_tag:compute_v1beta_generated_Instances_BulkInsert_async
     */
    bulkInsert(request?: protos.google.cloud.compute.v1beta.IBulkInsertInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    bulkInsert(request: protos.google.cloud.compute.v1beta.IBulkInsertInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IBulkInsertInstanceRequest | null | undefined, {} | null | undefined>): void;
    bulkInsert(request: protos.google.cloud.compute.v1beta.IBulkInsertInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IBulkInsertInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Deletes the specified Instance resource. For more information, seeDeleting
     * an instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance resource to delete.
     * @param {boolean} request.noGracefulShutdown
     *   If set to true, Graceful Shutdown is skipped.
     * @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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.delete.js</caption>
     * region_tag:compute_v1beta_generated_Instances_Delete_async
     */
    delete(request?: protos.google.cloud.compute.v1beta.IDeleteInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    delete(request: protos.google.cloud.compute.v1beta.IDeleteInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IDeleteInstanceRequest | null | undefined, {} | null | undefined>): void;
    delete(request: protos.google.cloud.compute.v1beta.IDeleteInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IDeleteInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Deletes an access config from an instance's network interface.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.accessConfig
     *   The name of the access config to delete.
     * @param {string} request.instance
     *   The instance name for this request.
     * @param {string} request.networkInterface
     *   The name of the network interface.
     * @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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.delete_access_config.js</caption>
     * region_tag:compute_v1beta_generated_Instances_DeleteAccessConfig_async
     */
    deleteAccessConfig(request?: protos.google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    deleteAccessConfig(request: protos.google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    deleteAccessConfig(request: protos.google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IDeleteAccessConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Deletes one dynamic network interface from an active instance.
     * InstancesDeleteNetworkInterfaceRequest indicates:
     * - instance from which to delete, using project+zone+resource_id fields;
     * - dynamic network interface to be deleted, using network_interface_name
     * field;
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   The instance name for this request stored as resource_id.
     *   Name should conform to RFC1035 or be an unsigned long integer.
     * @param {string} request.networkInterfaceName
     *   The name of the dynamic network interface to be deleted from the instance.
     * @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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.delete_network_interface.js</caption>
     * region_tag:compute_v1beta_generated_Instances_DeleteNetworkInterface_async
     */
    deleteNetworkInterface(request?: protos.google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    deleteNetworkInterface(request: protos.google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest | null | undefined, {} | null | undefined>): void;
    deleteNetworkInterface(request: protos.google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IDeleteNetworkInterfaceInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Detaches a disk from an instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.deviceName
     *   The device name of the disk to detach. Make a get() request on
     *   the instance to view currently attached disks and device names.
     * @param {string} request.instance
     *   Instance name 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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.detach_disk.js</caption>
     * region_tag:compute_v1beta_generated_Instances_DetachDisk_async
     */
    detachDisk(request?: protos.google.cloud.compute.v1beta.IDetachDiskInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    detachDisk(request: protos.google.cloud.compute.v1beta.IDetachDiskInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IDetachDiskInstanceRequest | null | undefined, {} | null | undefined>): void;
    detachDisk(request: protos.google.cloud.compute.v1beta.IDetachDiskInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IDetachDiskInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns the specified Instance resource.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance resource to return.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.view
     *   View of the instance.
     *   Check the View enum for the list of possible values.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.Instance|Instance}.
     *   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/v1beta/instances.get.js</caption>
     * region_tag:compute_v1beta_generated_Instances_Get_async
     */
    get(request?: protos.google.cloud.compute.v1beta.IGetInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IInstance,
        protos.google.cloud.compute.v1beta.IGetInstanceRequest | undefined,
        {} | undefined
    ]>;
    get(request: protos.google.cloud.compute.v1beta.IGetInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IInstance, protos.google.cloud.compute.v1beta.IGetInstanceRequest | null | undefined, {} | null | undefined>): void;
    get(request: protos.google.cloud.compute.v1beta.IGetInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IInstance, protos.google.cloud.compute.v1beta.IGetInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns effective firewalls applied to an interface of the instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {string} request.networkInterface
     *   The name of the network interface to get the effective firewalls.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.InstancesGetEffectiveFirewallsResponse|InstancesGetEffectiveFirewallsResponse}.
     *   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/v1beta/instances.get_effective_firewalls.js</caption>
     * region_tag:compute_v1beta_generated_Instances_GetEffectiveFirewalls_async
     */
    getEffectiveFirewalls(request?: protos.google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponse,
        protos.google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest | undefined,
        {} | undefined
    ]>;
    getEffectiveFirewalls(request: protos.google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponse, protos.google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest | null | undefined, {} | null | undefined>): void;
    getEffectiveFirewalls(request: protos.google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IInstancesGetEffectiveFirewallsResponse, protos.google.cloud.compute.v1beta.IGetEffectiveFirewallsInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns the specified guest attributes entry.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.queryPath
     *   Specifies the guest attributes path to be queried.
     * @param {string} request.variableKey
     *   Specifies the key for the guest attributes entry.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.GuestAttributes|GuestAttributes}.
     *   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/v1beta/instances.get_guest_attributes.js</caption>
     * region_tag:compute_v1beta_generated_Instances_GetGuestAttributes_async
     */
    getGuestAttributes(request?: protos.google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IGuestAttributes,
        protos.google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest | undefined,
        {} | undefined
    ]>;
    getGuestAttributes(request: protos.google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IGuestAttributes, protos.google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest | null | undefined, {} | null | undefined>): void;
    getGuestAttributes(request: protos.google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IGuestAttributes, protos.google.cloud.compute.v1beta.IGetGuestAttributesInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Gets the access control policy for a resource. May be empty if no such
     * policy or resource exists.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {number} request.optionsRequestedPolicyVersion
     *   Requested IAM Policy version.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.resource
     *   Name or id of the resource for this request.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.Policy|Policy}.
     *   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/v1beta/instances.get_iam_policy.js</caption>
     * region_tag:compute_v1beta_generated_Instances_GetIamPolicy_async
     */
    getIamPolicy(request?: protos.google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IPolicy,
        protos.google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest | undefined,
        {} | undefined
    ]>;
    getIamPolicy(request: protos.google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IPolicy, protos.google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    getIamPolicy(request: protos.google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IPolicy, protos.google.cloud.compute.v1beta.IGetIamPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Gets partner metadata of the specified instance and namespaces.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {string} request.namespaces
     *   Comma separated partner metadata namespaces.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.PartnerMetadata|PartnerMetadata}.
     *   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/v1beta/instances.get_partner_metadata.js</caption>
     * region_tag:compute_v1beta_generated_Instances_GetPartnerMetadata_async
     */
    getPartnerMetadata(request?: protos.google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IPartnerMetadata,
        protos.google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest | undefined,
        {} | undefined
    ]>;
    getPartnerMetadata(request: protos.google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IPartnerMetadata, protos.google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest | null | undefined, {} | null | undefined>): void;
    getPartnerMetadata(request: protos.google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IPartnerMetadata, protos.google.cloud.compute.v1beta.IGetPartnerMetadataInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns the screenshot from the specified instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.Screenshot|Screenshot}.
     *   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/v1beta/instances.get_screenshot.js</caption>
     * region_tag:compute_v1beta_generated_Instances_GetScreenshot_async
     */
    getScreenshot(request?: protos.google.cloud.compute.v1beta.IGetScreenshotInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IScreenshot,
        protos.google.cloud.compute.v1beta.IGetScreenshotInstanceRequest | undefined,
        {} | undefined
    ]>;
    getScreenshot(request: protos.google.cloud.compute.v1beta.IGetScreenshotInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IScreenshot, protos.google.cloud.compute.v1beta.IGetScreenshotInstanceRequest | null | undefined, {} | null | undefined>): void;
    getScreenshot(request: protos.google.cloud.compute.v1beta.IGetScreenshotInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IScreenshot, protos.google.cloud.compute.v1beta.IGetScreenshotInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns the last 1 MB of serial port output from the specified instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance for this request.
     * @param {number} request.port
     *   Specifies which COM or serial port to retrieve data from.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {number} request.start
     *   Specifies the starting byte position of the output to return. To start with
     *   the first byte of output to the specified port, omit this field or set it
     *   to `0`.
     *
     *   If the output for that byte position is available, this field matches the
     *   `start` parameter sent with the request. If the amount of serial console
     *   output exceeds the size of the buffer (1 MB), the oldest output is
     *   discarded and is no longer available. If the requested start position
     *   refers to discarded output, the start position is adjusted to the oldest
     *   output still available, and the adjusted start position is returned as the
     *   `start` property value.
     *
     *   You can also provide a negative start position, which translates to the
     *   most recent number of bytes written to the serial port. For example, -3 is
     *   interpreted as the most recent 3 bytes written to the serial console. Note
     *   that the negative start is bounded by the retained buffer size, and the
     *   returned serial console output will not exceed the max buffer size.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.SerialPortOutput|SerialPortOutput}.
     *   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/v1beta/instances.get_serial_port_output.js</caption>
     * region_tag:compute_v1beta_generated_Instances_GetSerialPortOutput_async
     */
    getSerialPortOutput(request?: protos.google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.ISerialPortOutput,
        protos.google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest | undefined,
        {} | undefined
    ]>;
    getSerialPortOutput(request: protos.google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.ISerialPortOutput, protos.google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest | null | undefined, {} | null | undefined>): void;
    getSerialPortOutput(request: protos.google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.ISerialPortOutput, protos.google.cloud.compute.v1beta.IGetSerialPortOutputInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns the Shielded Instance Identity of an instance
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name or id of the instance scoping this request.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.ShieldedInstanceIdentity|ShieldedInstanceIdentity}.
     *   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/v1beta/instances.get_shielded_instance_identity.js</caption>
     * region_tag:compute_v1beta_generated_Instances_GetShieldedInstanceIdentity_async
     */
    getShieldedInstanceIdentity(request?: protos.google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IShieldedInstanceIdentity,
        protos.google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest | undefined,
        {} | undefined
    ]>;
    getShieldedInstanceIdentity(request: protos.google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IShieldedInstanceIdentity, protos.google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest | null | undefined, {} | null | undefined>): void;
    getShieldedInstanceIdentity(request: protos.google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IShieldedInstanceIdentity, protos.google.cloud.compute.v1beta.IGetShieldedInstanceIdentityInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns the Shielded VM Identity of an instance
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.ShieldedVmIdentity|ShieldedVmIdentity}.
     *   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/v1beta/instances.get_shielded_vm_identity.js</caption>
     * region_tag:compute_v1beta_generated_Instances_GetShieldedVmIdentity_async
     */
    getShieldedVmIdentity(request?: protos.google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IShieldedVmIdentity,
        protos.google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest | undefined,
        {} | undefined
    ]>;
    getShieldedVmIdentity(request: protos.google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IShieldedVmIdentity, protos.google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest | null | undefined, {} | null | undefined>): void;
    getShieldedVmIdentity(request: protos.google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IShieldedVmIdentity, protos.google.cloud.compute.v1beta.IGetShieldedVmIdentityInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Creates an instance resource in the specified project using the data
     * included in the request.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.cloud.compute.v1beta.Instance} request.instanceResource
     *   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 {string} request.sourceInstanceTemplate
     *   Specifies instance template to create the instance.
     *
     *   This field is optional. It can be a full or partial URL. For example, the
     *   following are all valid URLs to an instance template:
     *
     *
     *         - https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
     *         - projects/project/global/instanceTemplates/instanceTemplate
     *         - global/instanceTemplates/instanceTemplate
     * @param {string} request.sourceMachineImage
     *   Specifies the machine image to use to create the instance.
     *
     *   This field is optional. It can be a full or partial URL. For example, the
     *   following are all valid URLs to a machine image:
     *
     *
     *         - https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage
     *         - projects/project/global/global/machineImages/machineImage
     *         - global/machineImages/machineImage
     * @param {string} request.zone
     *   The name of the zone 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/v1beta/instances.insert.js</caption>
     * region_tag:compute_v1beta_generated_Instances_Insert_async
     */
    insert(request?: protos.google.cloud.compute.v1beta.IInsertInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    insert(request: protos.google.cloud.compute.v1beta.IInsertInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IInsertInstanceRequest | null | undefined, {} | null | undefined>): void;
    insert(request: protos.google.cloud.compute.v1beta.IInsertInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IInsertInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Patches partner metadata of the specified instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {google.cloud.compute.v1beta.PartnerMetadata} request.partnerMetadataResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.patch_partner_metadata.js</caption>
     * region_tag:compute_v1beta_generated_Instances_PatchPartnerMetadata_async
     */
    patchPartnerMetadata(request?: protos.google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    patchPartnerMetadata(request: protos.google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest | null | undefined, {} | null | undefined>): void;
    patchPartnerMetadata(request: protos.google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IPatchPartnerMetadataInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Perform a manual maintenance on the instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping 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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.perform_maintenance.js</caption>
     * region_tag:compute_v1beta_generated_Instances_PerformMaintenance_async
     */
    performMaintenance(request?: protos.google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    performMaintenance(request: protos.google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest | null | undefined, {} | null | undefined>): void;
    performMaintenance(request: protos.google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IPerformMaintenanceInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Removes resource policies from an instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   The instance name for this request.
     * @param {google.cloud.compute.v1beta.InstancesRemoveResourcePoliciesRequest} request.instancesRemoveResourcePoliciesRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.remove_resource_policies.js</caption>
     * region_tag:compute_v1beta_generated_Instances_RemoveResourcePolicies_async
     */
    removeResourcePolicies(request?: protos.google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    removeResourcePolicies(request: protos.google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest | null | undefined, {} | null | undefined>): void;
    removeResourcePolicies(request: protos.google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IRemoveResourcePoliciesInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Mark the host as faulty and try to restart the instance on a new host.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {google.cloud.compute.v1beta.InstancesReportHostAsFaultyRequest} request.instancesReportHostAsFaultyRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.report_host_as_faulty.js</caption>
     * region_tag:compute_v1beta_generated_Instances_ReportHostAsFaulty_async
     */
    reportHostAsFaulty(request?: protos.google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    reportHostAsFaulty(request: protos.google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest | null | undefined, {} | null | undefined>): void;
    reportHostAsFaulty(request: protos.google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IReportHostAsFaultyInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Performs a reset on the instance. This is a hard reset. The VM
     * does not do a graceful shutdown. For more information, seeResetting
     * an instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping 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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.reset.js</caption>
     * region_tag:compute_v1beta_generated_Instances_Reset_async
     */
    reset(request?: protos.google.cloud.compute.v1beta.IResetInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    reset(request: protos.google.cloud.compute.v1beta.IResetInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IResetInstanceRequest | null | undefined, {} | null | undefined>): void;
    reset(request: protos.google.cloud.compute.v1beta.IResetInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IResetInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Resumes an instance that was suspended using theinstances().suspend
     * method.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance resource to resume.
     * @param {google.cloud.compute.v1beta.InstancesResumeRequest} request.instancesResumeRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.resume.js</caption>
     * region_tag:compute_v1beta_generated_Instances_Resume_async
     */
    resume(request?: protos.google.cloud.compute.v1beta.IResumeInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    resume(request: protos.google.cloud.compute.v1beta.IResumeInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IResumeInstanceRequest | null | undefined, {} | null | undefined>): void;
    resume(request: protos.google.cloud.compute.v1beta.IResumeInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IResumeInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sends diagnostic interrupt to the instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.SendDiagnosticInterruptInstanceResponse|SendDiagnosticInterruptInstanceResponse}.
     *   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/v1beta/instances.send_diagnostic_interrupt.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SendDiagnosticInterrupt_async
     */
    sendDiagnosticInterrupt(request?: protos.google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceResponse,
        protos.google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest | undefined,
        {} | undefined
    ]>;
    sendDiagnosticInterrupt(request: protos.google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceResponse, protos.google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest | null | undefined, {} | null | undefined>): void;
    sendDiagnosticInterrupt(request: protos.google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceResponse, protos.google.cloud.compute.v1beta.ISendDiagnosticInterruptInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets deletion protection on the instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {boolean} request.deletionProtection
     *   Whether the resource should be protected against deletion.
     * @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 {string} request.resource
     *   Name or id of the resource for this request.
     * @param {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_deletion_protection.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetDeletionProtection_async
     */
    setDeletionProtection(request?: protos.google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setDeletionProtection(request: protos.google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest | null | undefined, {} | null | undefined>): void;
    setDeletionProtection(request: protos.google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetDeletionProtectionInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the auto-delete flag for a disk attached to an instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {boolean} request.autoDelete
     *   Whether to auto-delete the disk when the instance is deleted.
     * @param {string} request.deviceName
     *   The device name of the disk to modify. Make a get() request
     *   on the instance to view currently attached disks and device names.
     * @param {string} request.instance
     *   The instance name 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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_disk_auto_delete.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetDiskAutoDelete_async
     */
    setDiskAutoDelete(request?: protos.google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setDiskAutoDelete(request: protos.google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest | null | undefined, {} | null | undefined>): void;
    setDiskAutoDelete(request: protos.google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetDiskAutoDeleteInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the access control policy on the specified resource.
     * Replaces any existing policy.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.resource
     *   Name or id of the resource for this request.
     * @param {string} request.zone
     *   The name of the zone for this request.
     * @param {google.cloud.compute.v1beta.ZoneSetPolicyRequest} request.zoneSetPolicyRequestResource
     *   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 {@link protos.google.cloud.compute.v1beta.Policy|Policy}.
     *   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/v1beta/instances.set_iam_policy.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetIamPolicy_async
     */
    setIamPolicy(request?: protos.google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IPolicy,
        protos.google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest | undefined,
        {} | undefined
    ]>;
    setIamPolicy(request: protos.google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IPolicy, protos.google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    setIamPolicy(request: protos.google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IPolicy, protos.google.cloud.compute.v1beta.ISetIamPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets labels on an instance.  To learn more about labels, read theLabeling
     * Resources documentation.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {google.cloud.compute.v1beta.InstancesSetLabelsRequest} request.instancesSetLabelsRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_labels.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetLabels_async
     */
    setLabels(request?: protos.google.cloud.compute.v1beta.ISetLabelsInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setLabels(request: protos.google.cloud.compute.v1beta.ISetLabelsInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetLabelsInstanceRequest | null | undefined, {} | null | undefined>): void;
    setLabels(request: protos.google.cloud.compute.v1beta.ISetLabelsInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetLabelsInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Changes the number and/or type of accelerator for a stopped instance to the
     * values specified in the request.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {google.cloud.compute.v1beta.InstancesSetMachineResourcesRequest} request.instancesSetMachineResourcesRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_machine_resources.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetMachineResources_async
     */
    setMachineResources(request?: protos.google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setMachineResources(request: protos.google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest | null | undefined, {} | null | undefined>): void;
    setMachineResources(request: protos.google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetMachineResourcesInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Changes the machine type for a stopped instance to the machine
     * type specified in the request.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {google.cloud.compute.v1beta.InstancesSetMachineTypeRequest} request.instancesSetMachineTypeRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_machine_type.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetMachineType_async
     */
    setMachineType(request?: protos.google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setMachineType(request: protos.google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest | null | undefined, {} | null | undefined>): void;
    setMachineType(request: protos.google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetMachineTypeInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets metadata for the specified instance to the data included
     * in the request.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {google.cloud.compute.v1beta.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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_metadata.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetMetadata_async
     */
    setMetadata(request?: protos.google.cloud.compute.v1beta.ISetMetadataInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setMetadata(request: protos.google.cloud.compute.v1beta.ISetMetadataInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetMetadataInstanceRequest | null | undefined, {} | null | undefined>): void;
    setMetadata(request: protos.google.cloud.compute.v1beta.ISetMetadataInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetMetadataInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Changes the minimum CPU platform that this instance should use.
     * This method can only
     * be called on a stopped instance. For more information, readSpecifying a
     * Minimum CPU Platform.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping this request.
     * @param {google.cloud.compute.v1beta.InstancesSetMinCpuPlatformRequest} request.instancesSetMinCpuPlatformRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_min_cpu_platform.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetMinCpuPlatform_async
     */
    setMinCpuPlatform(request?: protos.google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setMinCpuPlatform(request: protos.google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest | null | undefined, {} | null | undefined>): void;
    setMinCpuPlatform(request: protos.google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetMinCpuPlatformInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets name of an instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   The instance name for this request.
     * @param {google.cloud.compute.v1beta.InstancesSetNameRequest} request.instancesSetNameRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_name.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetName_async
     */
    setName(request?: protos.google.cloud.compute.v1beta.ISetNameInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setName(request: protos.google.cloud.compute.v1beta.ISetNameInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetNameInstanceRequest | null | undefined, {} | null | undefined>): void;
    setName(request: protos.google.cloud.compute.v1beta.ISetNameInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetNameInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets an instance's scheduling options. You can only call this method on astopped instance,
     * that is, a VM instance that is in a `TERMINATED` state. SeeInstance Life
     * Cycle for more information on the possible instance states.
     * For more information about setting scheduling options for a VM, seeSet
     * VM host maintenance policy.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Instance name 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 {google.cloud.compute.v1beta.Scheduling} request.schedulingResource
     *   The body resource for this request
     * @param {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_scheduling.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetScheduling_async
     */
    setScheduling(request?: protos.google.cloud.compute.v1beta.ISetSchedulingInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setScheduling(request: protos.google.cloud.compute.v1beta.ISetSchedulingInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetSchedulingInstanceRequest | null | undefined, {} | null | undefined>): void;
    setScheduling(request: protos.google.cloud.compute.v1beta.ISetSchedulingInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetSchedulingInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the Google Cloud Armor security policy for the specified instance.
     * For more information, seeGoogle
     * Cloud Armor Overview
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the Instance resource to which the security policy should be
     *   set. The name should conform to RFC1035.
     * @param {google.cloud.compute.v1beta.InstancesSetSecurityPolicyRequest} request.instancesSetSecurityPolicyRequestResource
     *   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 {string} request.zone
     *   Name of the zone scoping 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/v1beta/instances.set_security_policy.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetSecurityPolicy_async
     */
    setSecurityPolicy(request?: protos.google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setSecurityPolicy(request: protos.google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    setSecurityPolicy(request: protos.google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetSecurityPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the service account on the instance. For more information,
     * readChanging
     * the service account and access scopes for an instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance resource to start.
     * @param {google.cloud.compute.v1beta.InstancesSetServiceAccountRequest} request.instancesSetServiceAccountRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_service_account.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetServiceAccount_async
     */
    setServiceAccount(request?: protos.google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setServiceAccount(request: protos.google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest | null | undefined, {} | null | undefined>): void;
    setServiceAccount(request: protos.google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetServiceAccountInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the Shielded Instance integrity policy for an instance. You can
     * only use this method on a running instance. This method
     * supports PATCH semantics and uses the JSON merge
     * patch format and processing rules.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name or id of the instance scoping 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 {google.cloud.compute.v1beta.ShieldedInstanceIntegrityPolicy} request.shieldedInstanceIntegrityPolicyResource
     *   The body resource for this request
     * @param {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_shielded_instance_integrity_policy.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetShieldedInstanceIntegrityPolicy_async
     */
    setShieldedInstanceIntegrityPolicy(request?: protos.google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setShieldedInstanceIntegrityPolicy(request: protos.google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    setShieldedInstanceIntegrityPolicy(request: protos.google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetShieldedInstanceIntegrityPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the Shielded VM integrity policy for a VM instance. You can
     * only use this method on a running VM instance. This method
     * supports PATCH semantics and uses the JSON merge
     * patch format and processing rules.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping 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 {google.cloud.compute.v1beta.ShieldedVmIntegrityPolicy} request.shieldedVmIntegrityPolicyResource
     *   The body resource for this request
     * @param {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_shielded_vm_integrity_policy.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetShieldedVmIntegrityPolicy_async
     */
    setShieldedVmIntegrityPolicy(request?: protos.google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setShieldedVmIntegrityPolicy(request: protos.google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    setShieldedVmIntegrityPolicy(request: protos.google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetShieldedVmIntegrityPolicyInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets network tags
     * for the specified instance to the data included in the request.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping 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 {google.cloud.compute.v1beta.Tags} request.tagsResource
     *   The body resource for this request
     * @param {string} request.zone
     *   The name of the zone 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/v1beta/instances.set_tags.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SetTags_async
     */
    setTags(request?: protos.google.cloud.compute.v1beta.ISetTagsInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    setTags(request: protos.google.cloud.compute.v1beta.ISetTagsInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetTagsInstanceRequest | null | undefined, {} | null | undefined>): void;
    setTags(request: protos.google.cloud.compute.v1beta.ISetTagsInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISetTagsInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Simulates a host maintenance event on a VM. For more information, see
     * Simulate a host maintenance event.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping 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 {boolean} request.withExtendedNotifications
     *   Determines whether the customers receive notifications before migration.
     *   Only applicable to SF vms.
     * @param {string} request.zone
     *   The name of the zone 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/v1beta/instances.simulate_maintenance_event.js</caption>
     * region_tag:compute_v1beta_generated_Instances_SimulateMaintenanceEvent_async
     */
    simulateMaintenanceEvent(request?: protos.google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    simulateMaintenanceEvent(request: protos.google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest | null | undefined, {} | null | undefined>): void;
    simulateMaintenanceEvent(request: protos.google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISimulateMaintenanceEventInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Starts an instance that was stopped using theinstances().stop
     * method. For more information, seeRestart an
     * instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance resource to start.
     * @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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.start.js</caption>
     * region_tag:compute_v1beta_generated_Instances_Start_async
     */
    start(request?: protos.google.cloud.compute.v1beta.IStartInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    start(request: protos.google.cloud.compute.v1beta.IStartInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IStartInstanceRequest | null | undefined, {} | null | undefined>): void;
    start(request: protos.google.cloud.compute.v1beta.IStartInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IStartInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Starts an instance that was stopped using theinstances().stop
     * method. For more information, seeRestart an
     * instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance resource to start.
     * @param {google.cloud.compute.v1beta.InstancesStartWithEncryptionKeyRequest} request.instancesStartWithEncryptionKeyRequestResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.start_with_encryption_key.js</caption>
     * region_tag:compute_v1beta_generated_Instances_StartWithEncryptionKey_async
     */
    startWithEncryptionKey(request?: protos.google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    startWithEncryptionKey(request: protos.google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest | null | undefined, {} | null | undefined>): void;
    startWithEncryptionKey(request: protos.google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IStartWithEncryptionKeyInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Stops a running instance, shutting it down cleanly, and allows
     * you to restart the instance at a later time. Stopped instances do not incur
     * VM usage charges while they are stopped. However, resources that the VM is
     * using, such as persistent disks and static IP addresses, will continue to
     * be charged until they are deleted. For more information, seeStopping
     * an instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {boolean} request.discardLocalSsd
     *   This property is required if the instance has any attached Local SSD disks.
     *   If false, Local SSD data will be preserved when the instance is suspended.
     *   If true, the contents of any attached Local SSD disks will be discarded.
     * @param {string} request.instance
     *   Name of the instance resource to stop.
     * @param {boolean} request.noGracefulShutdown
     *   If set to true, Graceful Shutdown is skipped.
     * @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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.stop.js</caption>
     * region_tag:compute_v1beta_generated_Instances_Stop_async
     */
    stop(request?: protos.google.cloud.compute.v1beta.IStopInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    stop(request: protos.google.cloud.compute.v1beta.IStopInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IStopInstanceRequest | null | undefined, {} | null | undefined>): void;
    stop(request: protos.google.cloud.compute.v1beta.IStopInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IStopInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * This method suspends a running instance, saving its state to persistent
     * storage, and allows you to resume the instance at a later time. Suspended
     * instances have no compute costs (cores or RAM), and incur only storage
     * charges for the saved VM memory and localSSD data. Any charged resources
     * the virtual machine was using, such as persistent disks and static IP
     * addresses, will continue to be charged while the instance is suspended.
     * For more information, see
     * Suspending and resuming an instance.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {boolean} request.discardLocalSsd
     *   This property is required if the instance has any attached Local SSD disks.
     *   If false, Local SSD data will be preserved when the instance is suspended.
     *   If true, the contents of any attached Local SSD disks will be discarded.
     * @param {string} request.instance
     *   Name of the instance resource to suspend.
     * @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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.suspend.js</caption>
     * region_tag:compute_v1beta_generated_Instances_Suspend_async
     */
    suspend(request?: protos.google.cloud.compute.v1beta.ISuspendInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    suspend(request: protos.google.cloud.compute.v1beta.ISuspendInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISuspendInstanceRequest | null | undefined, {} | null | undefined>): void;
    suspend(request: protos.google.cloud.compute.v1beta.ISuspendInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.ISuspendInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns permissions that a caller has on the specified resource.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.project
     *   Project ID for this request.
     * @param {string} request.resource
     *   Name or id of the resource for this request.
     * @param {google.cloud.compute.v1beta.TestPermissionsRequest} request.testPermissionsRequestResource
     *   The body resource for this request
     * @param {string} request.zone
     *   The name of the zone 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.v1beta.TestPermissionsResponse|TestPermissionsResponse}.
     *   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/v1beta/instances.test_iam_permissions.js</caption>
     * region_tag:compute_v1beta_generated_Instances_TestIamPermissions_async
     */
    testIamPermissions(request?: protos.google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.ITestPermissionsResponse,
        protos.google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest | undefined,
        {} | undefined
    ]>;
    testIamPermissions(request: protos.google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.ITestPermissionsResponse, protos.google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest | null | undefined, {} | null | undefined>): void;
    testIamPermissions(request: protos.google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.ITestPermissionsResponse, protos.google.cloud.compute.v1beta.ITestIamPermissionsInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Updates an instance only if the necessary resources are available. This
     * method can update only a specific set of instance properties. See
     * Updating a running instance for a list of updatable instance
     * properties.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {boolean} request.discardLocalSsd
     *   Whether to discard local SSDs from the instance during restart
     *   default value is false.
     * @param {string} request.instance
     *   Name of the instance resource to update.
     * @param {google.cloud.compute.v1beta.Instance} request.instanceResource
     *   The body resource for this request
     * @param {string} request.minimalAction
     *   Specifies the action to take when updating an instance even if the
     *   updated properties do not require it. If not specified, then
     *   Compute Engine acts based on the minimum action that the updated
     *   properties require.
     *   Check the MinimalAction enum for the list of possible values.
     * @param {string} request.mostDisruptiveAllowedAction
     *   Specifies the most disruptive action that can be taken on the instance
     *   as part of the update. Compute Engine returns an error if the
     *   instance properties require a more disruptive action as part of the
     *   instance update. Valid options from lowest to highest are
     *   NO_EFFECT, REFRESH, and RESTART.
     *   Check the MostDisruptiveAllowedAction enum for the list of possible values.
     * @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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.update.js</caption>
     * region_tag:compute_v1beta_generated_Instances_Update_async
     */
    update(request?: protos.google.cloud.compute.v1beta.IUpdateInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    update(request: protos.google.cloud.compute.v1beta.IUpdateInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateInstanceRequest | null | undefined, {} | null | undefined>): void;
    update(request: protos.google.cloud.compute.v1beta.IUpdateInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Updates the specified access config from an instance's network interface
     * with the data included in the request. This method supportsPATCH
     * semantics and uses theJSON merge
     * patch format and processing rules.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.cloud.compute.v1beta.AccessConfig} request.accessConfigResource
     *   The body resource for this request
     * @param {string} request.instance
     *   The instance name for this request.
     * @param {string} request.networkInterface
     *   The name of the network interface where the access config is attached.
     * @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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.update_access_config.js</caption>
     * region_tag:compute_v1beta_generated_Instances_UpdateAccessConfig_async
     */
    updateAccessConfig(request?: protos.google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    updateAccessConfig(request: protos.google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    updateAccessConfig(request: protos.google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateAccessConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Updates the Display config for a VM instance. You can
     * only use this method on a stopped VM instance. This method supportsPATCH
     * semantics and uses theJSON merge
     * patch format and processing rules.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {google.cloud.compute.v1beta.DisplayDevice} request.displayDeviceResource
     *   The body resource for this request
     * @param {string} request.instance
     *   Name of the instance scoping 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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.update_display_device.js</caption>
     * region_tag:compute_v1beta_generated_Instances_UpdateDisplayDevice_async
     */
    updateDisplayDevice(request?: protos.google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    updateDisplayDevice(request: protos.google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest | null | undefined, {} | null | undefined>): void;
    updateDisplayDevice(request: protos.google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateDisplayDeviceInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Updates an instance's network interface. This method can only update an
     * interface's alias IP range and attached network. See Modifying
     * alias IP ranges for an existing instance for instructions on
     * changing alias IP ranges. See Migrating
     * a VM between networks for instructions on migrating an interface.
     * This method follows PATCH semantics.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   The instance name for this request.
     * @param {string} request.networkInterface
     *   The name of the network interface to update.
     * @param {google.cloud.compute.v1beta.NetworkInterface} request.networkInterfaceResource
     *   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 {string} request.zone
     *   The name of the zone 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/v1beta/instances.update_network_interface.js</caption>
     * region_tag:compute_v1beta_generated_Instances_UpdateNetworkInterface_async
     */
    updateNetworkInterface(request?: protos.google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    updateNetworkInterface(request: protos.google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest | null | undefined, {} | null | undefined>): void;
    updateNetworkInterface(request: protos.google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateNetworkInterfaceInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Updates the Shielded Instance config for an instance. You can
     * only use this method on a stopped instance. This method supportsPATCH
     * semantics and uses theJSON merge
     * patch format and processing rules.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name or id of the instance scoping 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 {google.cloud.compute.v1beta.ShieldedInstanceConfig} request.shieldedInstanceConfigResource
     *   The body resource for this request
     * @param {string} request.zone
     *   The name of the zone 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/v1beta/instances.update_shielded_instance_config.js</caption>
     * region_tag:compute_v1beta_generated_Instances_UpdateShieldedInstanceConfig_async
     */
    updateShieldedInstanceConfig(request?: protos.google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    updateShieldedInstanceConfig(request: protos.google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    updateShieldedInstanceConfig(request: protos.google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateShieldedInstanceConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Updates the Shielded VM config for a VM instance. You can
     * only use this method on a stopped VM instance. This method supportsPATCH
     * semantics and uses theJSON merge
     * patch format and processing rules.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.instance
     *   Name of the instance scoping 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 {google.cloud.compute.v1beta.ShieldedVmConfig} request.shieldedVmConfigResource
     *   The body resource for this request
     * @param {string} request.zone
     *   The name of the zone 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/v1beta/instances.update_shielded_vm_config.js</caption>
     * region_tag:compute_v1beta_generated_Instances_UpdateShieldedVmConfig_async
     */
    updateShieldedVmConfig(request?: protos.google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest, options?: CallOptions): Promise<[
        LROperation<protos.google.cloud.compute.v1beta.IOperation, null>,
        protos.google.cloud.compute.v1beta.IOperation | undefined,
        {} | undefined
    ]>;
    updateShieldedVmConfig(request: protos.google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest, options: CallOptions, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    updateShieldedVmConfig(request: protos.google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest, callback: Callback<protos.google.cloud.compute.v1beta.IOperation, protos.google.cloud.compute.v1beta.IUpdateShieldedVmConfigInstanceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Retrieves an aggregated list of all of the instances in your project
     * across all regions and zones.
     *
     * The performance of this method degrades when a filter is specified on a
     * project that has a very large number of instances.
     *
     * To prevent failure, Google recommends that you set the
     * `returnPartialSuccess` parameter to `true`.
     *
     * `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 {boolean} request.includeAllScopes
     *   Indicates whether every visible scope for each scope type (zone, region,
     *   global) should be included in the response. For new resource types added
     *   after this field, the flag has no effect as new resource types will always
     *   include every visible scope for each scope type in response. For resource
     *   types which predate this field, if this flag is omitted or false, only
     *   scopes of the scope types where the resource type is expected to be found
     *   will be included.
     * @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 {number} request.serviceProjectNumber
     *   The Shared VPC service project id or service project number for which
     *   aggregated list request is invoked for subnetworks list-usable api.
     * @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
     *   as tuple [string, {@link protos.google.cloud.compute.v1beta.InstancesScopedList|InstancesScopedList}]. 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/v1beta/instances.aggregated_list.js</caption>
     * region_tag:compute_v1beta_generated_Instances_AggregatedList_async
     */
    aggregatedListAsync(request?: protos.google.cloud.compute.v1beta.IAggregatedListInstancesRequest, options?: CallOptions): AsyncIterable<[string, protos.google.cloud.compute.v1beta.IInstancesScopedList]>;
    /**
    * Retrieves the list of instances contained within
    * the specified zone.
    *
    * @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 {string} request.view
    *   View of the instance.
    *   Check the View enum for the list of possible values.
    * @param {string} request.zone
    *   The name of the zone 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 Array of {@link protos.google.cloud.compute.v1beta.Instance|Instance}.
    *   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 `listAsync()`
    *   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.
    */
    list(request?: protos.google.cloud.compute.v1beta.IListInstancesRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IInstance[],
        protos.google.cloud.compute.v1beta.IListInstancesRequest | null,
        protos.google.cloud.compute.v1beta.IInstanceList
    ]>;
    list(request: protos.google.cloud.compute.v1beta.IListInstancesRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.compute.v1beta.IListInstancesRequest, protos.google.cloud.compute.v1beta.IInstanceList | null | undefined, protos.google.cloud.compute.v1beta.IInstance>): void;
    list(request: protos.google.cloud.compute.v1beta.IListInstancesRequest, callback: PaginationCallback<protos.google.cloud.compute.v1beta.IListInstancesRequest, protos.google.cloud.compute.v1beta.IInstanceList | null | undefined, protos.google.cloud.compute.v1beta.IInstance>): void;
    /**
     * Equivalent to `list`, 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 {string} request.view
     *   View of the instance.
     *   Check the View enum for the list of possible values.
     * @param {string} request.zone
     *   The name of the zone 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 {Stream}
     *   An object stream which emits an object representing {@link protos.google.cloud.compute.v1beta.Instance|Instance} 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 `listAsync()`
     *   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.
     */
    listStream(request?: protos.google.cloud.compute.v1beta.IListInstancesRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `list`, 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 {string} request.view
     *   View of the instance.
     *   Check the View enum for the list of possible values.
     * @param {string} request.zone
     *   The name of the zone 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 {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.v1beta.Instance|Instance}. 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/v1beta/instances.list.js</caption>
     * region_tag:compute_v1beta_generated_Instances_List_async
     */
    listAsync(request?: protos.google.cloud.compute.v1beta.IListInstancesRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.compute.v1beta.IInstance>;
    /**
    * Retrieves a list of resources that refer to the VM instance specified in
    * the request. For example, if the VM instance is part of a managed or
    * unmanaged instance group, the referrers list includes the instance group.
    * For more information, readViewing
    * referrers to VM instances.
    *
    * @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 {string} request.instance
    *   Name of the target instance scoping this request, or '-' if the
    *   request should span over all instances in the container.
    * @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 {string} request.zone
    *   The name of the zone 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 Array of {@link protos.google.cloud.compute.v1beta.Reference|Reference}.
    *   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 `listReferrersAsync()`
    *   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.
    */
    listReferrers(request?: protos.google.cloud.compute.v1beta.IListReferrersInstancesRequest, options?: CallOptions): Promise<[
        protos.google.cloud.compute.v1beta.IReference[],
        protos.google.cloud.compute.v1beta.IListReferrersInstancesRequest | null,
        protos.google.cloud.compute.v1beta.IInstanceListReferrers
    ]>;
    listReferrers(request: protos.google.cloud.compute.v1beta.IListReferrersInstancesRequest, options: CallOptions, callback: PaginationCallback<protos.google.cloud.compute.v1beta.IListReferrersInstancesRequest, protos.google.cloud.compute.v1beta.IInstanceListReferrers | null | undefined, protos.google.cloud.compute.v1beta.IReference>): void;
    listReferrers(request: protos.google.cloud.compute.v1beta.IListReferrersInstancesRequest, callback: PaginationCallback<protos.google.cloud.compute.v1beta.IListReferrersInstancesRequest, protos.google.cloud.compute.v1beta.IInstanceListReferrers | null | undefined, protos.google.cloud.compute.v1beta.IReference>): void;
    /**
     * Equivalent to `listReferrers`, 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 {string} request.instance
     *   Name of the target instance scoping this request, or '-' if the
     *   request should span over all instances in the container.
     * @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 {string} request.zone
     *   The name of the zone 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 {Stream}
     *   An object stream which emits an object representing {@link protos.google.cloud.compute.v1beta.Reference|Reference} 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 `listReferrersAsync()`
     *   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.
     */
    listReferrersStream(request?: protos.google.cloud.compute.v1beta.IListReferrersInstancesRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `listReferrers`, 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 {string} request.instance
     *   Name of the target instance scoping this request, or '-' if the
     *   request should span over all instances in the container.
     * @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 {string} request.zone
     *   The name of the zone 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 {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.v1beta.Reference|Reference}. 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/v1beta/instances.list_referrers.js</caption>
     * region_tag:compute_v1beta_generated_Instances_ListReferrers_async
     */
    listReferrersAsync(request?: protos.google.cloud.compute.v1beta.IListReferrersInstancesRequest, options?: CallOptions): AsyncIterable<protos.google.cloud.compute.v1beta.IReference>;
    /**
     * 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>;
}
