import type * as gax from 'google-gax';
import type { Callback, CallOptions, Descriptors, ClientOptions, PaginationCallback } from 'google-gax';
import { Transform } from 'stream';
import * as protos from '../../protos/protos';
/**
 *  Google Kubernetes Engine Cluster Manager v1
 * @class
 * @memberof v1
 */
export declare class ClusterManagerClient {
    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;
    };
    pathTemplates: {
        [name: string]: gax.PathTemplate;
    };
    clusterManagerStub?: Promise<{
        [name: string]: Function;
    }>;
    /**
     * Construct an instance of ClusterManagerClient.
     *
     * @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 ClusterManagerClient({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;
    /**
     * Lists all clusters owned by a project in either the specified zone or all
     * zones.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the parent field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides, or "-" for all zones. This field has been
     *   deprecated and replaced by the parent field.
     * @param {string} request.parent
     *   The parent (project and location) where the clusters will be listed.
     *   Specified in the format `projects/* /locations/*`.
     *   Location "-" matches all zones and all regions.
     * @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.container.v1.ListClustersResponse|ListClustersResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.list_clusters.js</caption>
     * region_tag:container_v1_generated_ClusterManager_ListClusters_async
     */
    listClusters(request?: protos.google.container.v1.IListClustersRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IListClustersResponse,
        protos.google.container.v1.IListClustersRequest | undefined,
        {} | undefined
    ]>;
    listClusters(request: protos.google.container.v1.IListClustersRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IListClustersResponse, protos.google.container.v1.IListClustersRequest | null | undefined, {} | null | undefined>): void;
    listClusters(request: protos.google.container.v1.IListClustersRequest, callback: Callback<protos.google.container.v1.IListClustersResponse, protos.google.container.v1.IListClustersRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Gets the details of a specific cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to retrieve.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to retrieve.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Cluster|Cluster}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.get_cluster.js</caption>
     * region_tag:container_v1_generated_ClusterManager_GetCluster_async
     */
    getCluster(request?: protos.google.container.v1.IGetClusterRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.ICluster,
        protos.google.container.v1.IGetClusterRequest | undefined,
        {} | undefined
    ]>;
    getCluster(request: protos.google.container.v1.IGetClusterRequest, options: CallOptions, callback: Callback<protos.google.container.v1.ICluster, protos.google.container.v1.IGetClusterRequest | null | undefined, {} | null | undefined>): void;
    getCluster(request: protos.google.container.v1.IGetClusterRequest, callback: Callback<protos.google.container.v1.ICluster, protos.google.container.v1.IGetClusterRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Creates a cluster, consisting of the specified number and type of Google
     * Compute Engine instances.
     *
     * By default, the cluster is created in the project's
     * [default
     * network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
     *
     * One firewall is added for the cluster. After cluster creation,
     * the kubelet creates routes for each node to allow the containers
     * on that node to communicate with all other instances in the
     * cluster.
     *
     * Finally, an entry is added to the project's global metadata indicating
     * which CIDR range the cluster is using.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the parent field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the parent field.
     * @param {google.container.v1.Cluster} request.cluster
     *   Required. A [cluster
     *   resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
     * @param {string} request.parent
     *   The parent (project and location) where the cluster will be created.
     *   Specified in the format `projects/* /locations/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.create_cluster.js</caption>
     * region_tag:container_v1_generated_ClusterManager_CreateCluster_async
     */
    createCluster(request?: protos.google.container.v1.ICreateClusterRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ICreateClusterRequest | undefined,
        {} | undefined
    ]>;
    createCluster(request: protos.google.container.v1.ICreateClusterRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ICreateClusterRequest | null | undefined, {} | null | undefined>): void;
    createCluster(request: protos.google.container.v1.ICreateClusterRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ICreateClusterRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Updates the settings of a specific cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {google.container.v1.ClusterUpdate} request.update
     *   Required. A description of the update.
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to update.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.update_cluster.js</caption>
     * region_tag:container_v1_generated_ClusterManager_UpdateCluster_async
     */
    updateCluster(request?: protos.google.container.v1.IUpdateClusterRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.IUpdateClusterRequest | undefined,
        {} | undefined
    ]>;
    updateCluster(request: protos.google.container.v1.IUpdateClusterRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IUpdateClusterRequest | null | undefined, {} | null | undefined>): void;
    updateCluster(request: protos.google.container.v1.IUpdateClusterRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IUpdateClusterRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Updates the version and/or image type for the specified node pool.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.nodePoolId
     *   Deprecated. The name of the node pool to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.nodeVersion
     *   Required. The Kubernetes version to change the nodes to (typically an
     *   upgrade).
     *
     *   Users may specify either explicit versions offered by Kubernetes Engine or
     *   version aliases, which have the following behavior:
     *
     *   - "latest": picks the highest valid Kubernetes version
     *   - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
     *   - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
     *   - "1.X.Y-gke.N": picks an explicit Kubernetes version
     *   - "-": picks the Kubernetes master version
     * @param {string} request.imageType
     *   Required. The desired image type for the node pool. Please see
     *   https://cloud.google.com/kubernetes-engine/docs/concepts/node-images
     *   for available image types.
     * @param {string} request.name
     *   The name (project, location, cluster, node pool) of the node pool to
     *   update. Specified in the format
     *   `projects/* /locations/* /clusters/* /nodePools/*`.
     * @param {string[]} request.locations
     *   The desired list of Google Compute Engine
     *   [zones](https://cloud.google.com/compute/docs/zones#available)
     *   in which the node pool's nodes should be located. Changing the locations
     *   for a node pool will result in nodes being either created or removed from
     *   the node pool, depending on whether locations are being added or removed.
     *
     *   Warning: It is recommended to update node pool locations in a standalone
     *   API call. Do not combine a location update with changes to other fields
     *   (such as `tags`, `labels`, `taints`, etc.) in the same request.
     *   Otherwise, the API performs a structural modification where changes to
     *   other fields will only apply to newly created nodes and will not be
     *   applied to existing nodes in the node pool. To ensure all nodes are updated
     *   consistently, use a separate API call for location changes.
     * @param {google.container.v1.WorkloadMetadataConfig} request.workloadMetadataConfig
     *   The desired workload metadata config for the node pool.
     * @param {google.container.v1.NodePool.UpgradeSettings} request.upgradeSettings
     *   Upgrade settings control disruption and speed of the upgrade.
     * @param {google.container.v1.NetworkTags} request.tags
     *   The desired network tags to be applied to all nodes in the node pool.
     *   If this field is not present, the tags will not be changed. Otherwise,
     *   the existing network tags will be *replaced* with the provided tags.
     * @param {google.container.v1.NodeTaints} request.taints
     *   The desired node taints to be applied to all nodes in the node pool.
     *   If this field is not present, the taints will not be changed. Otherwise,
     *   the existing node taints will be *replaced* with the provided taints.
     * @param {google.container.v1.NodeLabels} request.labels
     *   The desired node labels to be applied to all nodes in the node pool.
     *   If this field is not present, the labels will not be changed. Otherwise,
     *   the existing node labels will be *replaced* with the provided labels.
     * @param {google.container.v1.LinuxNodeConfig} request.linuxNodeConfig
     *   Parameters that can be configured on Linux nodes.
     * @param {google.container.v1.NodeKubeletConfig} request.kubeletConfig
     *   Node kubelet configs.
     * @param {google.container.v1.NodeNetworkConfig} request.nodeNetworkConfig
     *   Node network config.
     * @param {google.container.v1.GcfsConfig} request.gcfsConfig
     *   GCFS config.
     * @param {google.container.v1.ConfidentialNodes} request.confidentialNodes
     *   Confidential nodes config.
     *   All the nodes in the node pool will be Confidential VM once enabled.
     * @param {google.container.v1.VirtualNIC} request.gvnic
     *   Enable or disable gvnic on the node pool.
     * @param {string} request.etag
     *   The current etag of the node pool.
     *   If an etag is provided and does not match the current etag of the node
     *   pool, update will be blocked and an ABORTED error will be returned.
     * @param {google.container.v1.FastSocket} request.fastSocket
     *   Enable or disable NCCL fast socket for the node pool.
     * @param {google.container.v1.NodePoolLoggingConfig} request.loggingConfig
     *   Logging configuration.
     * @param {google.container.v1.ResourceLabels} request.resourceLabels
     *   The resource labels for the node pool to use to annotate any related
     *   Google Compute Engine resources.
     * @param {google.container.v1.WindowsNodeConfig} request.windowsNodeConfig
     *   Parameters that can be configured on Windows nodes.
     * @param {number[]} request.accelerators
     *   A list of hardware accelerators to be attached to each node.
     *   See
     *   https://cloud.google.com/compute/docs/gpus
     *   for more information about support for GPUs.
     * @param {string} [request.machineType]
     *   Optional. The desired [Google Compute Engine machine
     *   type](https://cloud.google.com/compute/docs/machine-types)
     *   for nodes in the node pool. Initiates an upgrade operation that migrates
     *   the nodes in the node pool to the specified machine type.
     * @param {string} [request.diskType]
     *   Optional. The desired disk type (e.g. 'pd-standard', 'pd-ssd' or
     *   'pd-balanced') for nodes in the node pool.
     *   Initiates an upgrade operation that migrates the nodes in the
     *   node pool to the specified disk type.
     * @param {number} [request.diskSizeGb]
     *   Optional. The desired disk size for nodes in the node pool specified in GB.
     *   The smallest allowed disk size is 10GB.
     *   Initiates an upgrade operation that migrates the nodes in the
     *   node pool to the specified disk size.
     * @param {google.container.v1.ResourceManagerTags} request.resourceManagerTags
     *   Desired resource manager tag keys and values to be attached to the nodes
     *   for managing Compute Engine firewalls using Network Firewall Policies.
     *   Existing tags will be replaced with new values.
     * @param {google.container.v1.ContainerdConfig} request.containerdConfig
     *   The desired containerd config for nodes in the node pool.
     *   Initiates an upgrade operation that recreates the nodes with the new
     *   config.
     * @param {google.container.v1.NodePool.QueuedProvisioning} request.queuedProvisioning
     *   Specifies the configuration of queued provisioning.
     * @param {string[]} request.storagePools
     *   List of Storage Pools where boot disks are provisioned.
     *   Existing Storage Pools will be replaced with storage-pools.
     * @param {google.protobuf.Duration} request.maxRunDuration
     *   The maximum duration for the nodes to exist.
     *   If unspecified, the nodes can exist indefinitely.
     * @param {boolean} request.flexStart
     *   Flex Start flag for enabling Flex Start VM.
     * @param {google.container.v1.BootDisk} request.bootDisk
     *   The desired boot disk config for nodes in the node pool.
     *   Initiates an upgrade operation that migrates the nodes in the
     *   node pool to the specified boot disk config.
     * @param {google.container.v1.NodePool.NodeDrainConfig} request.nodeDrainConfig
     *   The desired node drain configuration for nodes in the node pool.
     * @param {google.protobuf.Duration} request.consolidationDelay
     *   Consolidation delay defines duration after which the Cluster Autoscaler can
     *   scale down underutilized nodes. If not set, nodes are scaled down by
     *   default behavior, i.e. according to the chosen autoscaling profile.
     * @param {google.container.v1.TaintConfig} request.taintConfig
     *   The taint configuration for the node pool.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.update_node_pool.js</caption>
     * region_tag:container_v1_generated_ClusterManager_UpdateNodePool_async
     */
    updateNodePool(request?: protos.google.container.v1.IUpdateNodePoolRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.IUpdateNodePoolRequest | undefined,
        {} | undefined
    ]>;
    updateNodePool(request: protos.google.container.v1.IUpdateNodePoolRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IUpdateNodePoolRequest | null | undefined, {} | null | undefined>): void;
    updateNodePool(request: protos.google.container.v1.IUpdateNodePoolRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IUpdateNodePoolRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the autoscaling settings for the specified node pool.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.nodePoolId
     *   Deprecated. The name of the node pool to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {google.container.v1.NodePoolAutoscaling} request.autoscaling
     *   Required. Autoscaling configuration for the node pool.
     * @param {string} request.name
     *   The name (project, location, cluster, node pool) of the node pool to set
     *   autoscaler settings. Specified in the format
     *   `projects/* /locations/* /clusters/* /nodePools/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_node_pool_autoscaling.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetNodePoolAutoscaling_async
     */
    setNodePoolAutoscaling(request?: protos.google.container.v1.ISetNodePoolAutoscalingRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetNodePoolAutoscalingRequest | undefined,
        {} | undefined
    ]>;
    setNodePoolAutoscaling(request: protos.google.container.v1.ISetNodePoolAutoscalingRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetNodePoolAutoscalingRequest | null | undefined, {} | null | undefined>): void;
    setNodePoolAutoscaling(request: protos.google.container.v1.ISetNodePoolAutoscalingRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetNodePoolAutoscalingRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the logging service for a specific cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.loggingService
     *   Required. The logging service the cluster should use to write logs.
     *   Currently available options:
     *
     *   * `logging.googleapis.com/kubernetes` - The Cloud Logging
     *   service with a Kubernetes-native resource model
     *   * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
     *     available as of GKE 1.15).
     *   * `none` - no logs will be exported from the cluster.
     *
     *   If left as an empty string,`logging.googleapis.com/kubernetes` will be
     *   used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to set logging.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_logging_service.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetLoggingService_async
     */
    setLoggingService(request?: protos.google.container.v1.ISetLoggingServiceRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetLoggingServiceRequest | undefined,
        {} | undefined
    ]>;
    setLoggingService(request: protos.google.container.v1.ISetLoggingServiceRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetLoggingServiceRequest | null | undefined, {} | null | undefined>): void;
    setLoggingService(request: protos.google.container.v1.ISetLoggingServiceRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetLoggingServiceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the monitoring service for a specific cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.monitoringService
     *   Required. The monitoring service the cluster should use to write metrics.
     *   Currently available options:
     *
     *   * `monitoring.googleapis.com/kubernetes` - The Cloud Monitoring
     *   service with a Kubernetes-native resource model
     *   * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
     *     longer available as of GKE 1.15).
     *   * `none` - No metrics will be exported from the cluster.
     *
     *   If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
     *   used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to set monitoring.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_monitoring_service.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetMonitoringService_async
     */
    setMonitoringService(request?: protos.google.container.v1.ISetMonitoringServiceRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetMonitoringServiceRequest | undefined,
        {} | undefined
    ]>;
    setMonitoringService(request: protos.google.container.v1.ISetMonitoringServiceRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetMonitoringServiceRequest | null | undefined, {} | null | undefined>): void;
    setMonitoringService(request: protos.google.container.v1.ISetMonitoringServiceRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetMonitoringServiceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the addons for a specific cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {google.container.v1.AddonsConfig} request.addonsConfig
     *   Required. The desired configurations for the various addons available to
     *   run in the cluster.
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to set addons.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_addons_config.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetAddonsConfig_async
     */
    setAddonsConfig(request?: protos.google.container.v1.ISetAddonsConfigRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetAddonsConfigRequest | undefined,
        {} | undefined
    ]>;
    setAddonsConfig(request: protos.google.container.v1.ISetAddonsConfigRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetAddonsConfigRequest | null | undefined, {} | null | undefined>): void;
    setAddonsConfig(request: protos.google.container.v1.ISetAddonsConfigRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetAddonsConfigRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the locations for a specific cluster.
     * Deprecated. Use
     * [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update)
     * instead.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {string[]} request.locations
     *   Required. The desired list of Google Compute Engine
     *   [zones](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster's nodes should be located. Changing the locations a
     *   cluster is in will result in nodes being either created or removed from the
     *   cluster, depending on whether locations are being added or removed.
     *
     *   This list must always include the cluster's primary zone.
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to set locations.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_locations.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetLocations_async
     * @deprecated SetLocations is deprecated and may be removed in a future version.
     */
    setLocations(request?: protos.google.container.v1.ISetLocationsRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetLocationsRequest | undefined,
        {} | undefined
    ]>;
    setLocations(request: protos.google.container.v1.ISetLocationsRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetLocationsRequest | null | undefined, {} | null | undefined>): void;
    setLocations(request: protos.google.container.v1.ISetLocationsRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetLocationsRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Updates the master for a specific cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.masterVersion
     *   Required. The Kubernetes version to change the master to.
     *
     *   Users may specify either explicit versions offered by Kubernetes Engine or
     *   version aliases, which have the following behavior:
     *
     *   - "latest": picks the highest valid Kubernetes version
     *   - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
     *   - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
     *   - "1.X.Y-gke.N": picks an explicit Kubernetes version
     *   - "-": picks the default Kubernetes version
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to update.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.update_master.js</caption>
     * region_tag:container_v1_generated_ClusterManager_UpdateMaster_async
     */
    updateMaster(request?: protos.google.container.v1.IUpdateMasterRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.IUpdateMasterRequest | undefined,
        {} | undefined
    ]>;
    updateMaster(request: protos.google.container.v1.IUpdateMasterRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IUpdateMasterRequest | null | undefined, {} | null | undefined>): void;
    updateMaster(request: protos.google.container.v1.IUpdateMasterRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IUpdateMasterRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets master auth materials. Currently supports changing the admin password
     * or a specific cluster, either via password generation or explicitly setting
     * the password.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to upgrade.
     *   This field has been deprecated and replaced by the name field.
     * @param {google.container.v1.SetMasterAuthRequest.Action} request.action
     *   Required. The exact form of action to be taken on the master auth.
     * @param {google.container.v1.MasterAuth} request.update
     *   Required. A description of the update.
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to set auth.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_master_auth.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetMasterAuth_async
     */
    setMasterAuth(request?: protos.google.container.v1.ISetMasterAuthRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetMasterAuthRequest | undefined,
        {} | undefined
    ]>;
    setMasterAuth(request: protos.google.container.v1.ISetMasterAuthRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetMasterAuthRequest | null | undefined, {} | null | undefined>): void;
    setMasterAuth(request: protos.google.container.v1.ISetMasterAuthRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetMasterAuthRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Deletes the cluster, including the Kubernetes endpoint and all worker
     * nodes.
     *
     * Firewalls and routes that were configured during cluster creation
     * are also deleted.
     *
     * Other Google Compute Engine resources that might be in use by the cluster,
     * such as load balancer resources, are not deleted if they weren't present
     * when the cluster was initially created.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to delete.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to delete.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.delete_cluster.js</caption>
     * region_tag:container_v1_generated_ClusterManager_DeleteCluster_async
     */
    deleteCluster(request?: protos.google.container.v1.IDeleteClusterRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.IDeleteClusterRequest | undefined,
        {} | undefined
    ]>;
    deleteCluster(request: protos.google.container.v1.IDeleteClusterRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IDeleteClusterRequest | null | undefined, {} | null | undefined>): void;
    deleteCluster(request: protos.google.container.v1.IDeleteClusterRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IDeleteClusterRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Lists all operations in a project in a specific zone or all zones.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the parent field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   to return operations for, or `-` for all zones. This field has been
     *   deprecated and replaced by the parent field.
     * @param {string} request.parent
     *   The parent (project and location) where the operations will be listed.
     *   Specified in the format `projects/* /locations/*`.
     *   Location "-" matches all zones and all regions.
     * @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.container.v1.ListOperationsResponse|ListOperationsResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.list_operations.js</caption>
     * region_tag:container_v1_generated_ClusterManager_ListOperations_async
     */
    listOperations(request?: protos.google.container.v1.IListOperationsRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IListOperationsResponse,
        protos.google.container.v1.IListOperationsRequest | undefined,
        {} | undefined
    ]>;
    listOperations(request: protos.google.container.v1.IListOperationsRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IListOperationsResponse, protos.google.container.v1.IListOperationsRequest | null | undefined, {} | null | undefined>): void;
    listOperations(request: protos.google.container.v1.IListOperationsRequest, callback: Callback<protos.google.container.v1.IListOperationsResponse, protos.google.container.v1.IListOperationsRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Gets the specified operation.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.operationId
     *   Deprecated. The server-assigned `name` of the operation.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.name
     *   The name (project, location, operation id) of the operation to get.
     *   Specified in the format `projects/* /locations/* /operations/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.get_operation.js</caption>
     * region_tag:container_v1_generated_ClusterManager_GetOperation_async
     */
    getOperation(request?: protos.google.container.v1.IGetOperationRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.IGetOperationRequest | undefined,
        {} | undefined
    ]>;
    getOperation(request: protos.google.container.v1.IGetOperationRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IGetOperationRequest | null | undefined, {} | null | undefined>): void;
    getOperation(request: protos.google.container.v1.IGetOperationRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IGetOperationRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Cancels the specified operation.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the operation resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.operationId
     *   Deprecated. The server-assigned `name` of the operation.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.name
     *   The name (project, location, operation id) of the operation to cancel.
     *   Specified in the format `projects/* /locations/* /operations/*`.
     * @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.protobuf.Empty|Empty}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.cancel_operation.js</caption>
     * region_tag:container_v1_generated_ClusterManager_CancelOperation_async
     */
    cancelOperation(request?: protos.google.container.v1.ICancelOperationRequest, options?: CallOptions): Promise<[
        protos.google.protobuf.IEmpty,
        protos.google.container.v1.ICancelOperationRequest | undefined,
        {} | undefined
    ]>;
    cancelOperation(request: protos.google.container.v1.ICancelOperationRequest, options: CallOptions, callback: Callback<protos.google.protobuf.IEmpty, protos.google.container.v1.ICancelOperationRequest | null | undefined, {} | null | undefined>): void;
    cancelOperation(request: protos.google.container.v1.ICancelOperationRequest, callback: Callback<protos.google.protobuf.IEmpty, protos.google.container.v1.ICancelOperationRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns configuration info about the Google Kubernetes Engine service.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   to return operations for. This field has been deprecated and replaced by
     *   the name field.
     * @param {string} request.name
     *   The name (project and location) of the server config to get,
     *   specified in the format `projects/* /locations/*`.
     * @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.container.v1.ServerConfig|ServerConfig}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.get_server_config.js</caption>
     * region_tag:container_v1_generated_ClusterManager_GetServerConfig_async
     */
    getServerConfig(request?: protos.google.container.v1.IGetServerConfigRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IServerConfig,
        protos.google.container.v1.IGetServerConfigRequest | undefined,
        {} | undefined
    ]>;
    getServerConfig(request: protos.google.container.v1.IGetServerConfigRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IServerConfig, protos.google.container.v1.IGetServerConfigRequest | null | undefined, {} | null | undefined>): void;
    getServerConfig(request: protos.google.container.v1.IGetServerConfigRequest, callback: Callback<protos.google.container.v1.IServerConfig, protos.google.container.v1.IGetServerConfigRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Gets the public component of the cluster signing keys in
     * JSON Web Key format.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   The cluster (project, location, cluster name) to get keys for. Specified in
     *   the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.GetJSONWebKeysResponse|GetJSONWebKeysResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.get_j_s_o_n_web_keys.js</caption>
     * region_tag:container_v1_generated_ClusterManager_GetJSONWebKeys_async
     */
    getJSONWebKeys(request?: protos.google.container.v1.IGetJSONWebKeysRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IGetJSONWebKeysResponse,
        protos.google.container.v1.IGetJSONWebKeysRequest | undefined,
        {} | undefined
    ]>;
    getJSONWebKeys(request: protos.google.container.v1.IGetJSONWebKeysRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IGetJSONWebKeysResponse, protos.google.container.v1.IGetJSONWebKeysRequest | null | undefined, {} | null | undefined>): void;
    getJSONWebKeys(request: protos.google.container.v1.IGetJSONWebKeysRequest, callback: Callback<protos.google.container.v1.IGetJSONWebKeysResponse, protos.google.container.v1.IGetJSONWebKeysRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Lists the node pools for a cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the parent field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the parent field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster.
     *   This field has been deprecated and replaced by the parent field.
     * @param {string} request.parent
     *   The parent (project, location, cluster name) where the node pools will be
     *   listed. Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.ListNodePoolsResponse|ListNodePoolsResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.list_node_pools.js</caption>
     * region_tag:container_v1_generated_ClusterManager_ListNodePools_async
     */
    listNodePools(request?: protos.google.container.v1.IListNodePoolsRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IListNodePoolsResponse,
        protos.google.container.v1.IListNodePoolsRequest | undefined,
        {} | undefined
    ]>;
    listNodePools(request: protos.google.container.v1.IListNodePoolsRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IListNodePoolsResponse, protos.google.container.v1.IListNodePoolsRequest | null | undefined, {} | null | undefined>): void;
    listNodePools(request: protos.google.container.v1.IListNodePoolsRequest, callback: Callback<protos.google.container.v1.IListNodePoolsResponse, protos.google.container.v1.IListNodePoolsRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Retrieves the requested node pool.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.nodePoolId
     *   Deprecated. The name of the node pool.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.name
     *   The name (project, location, cluster, node pool id) of the node pool to
     *   get. Specified in the format
     *   `projects/* /locations/* /clusters/* /nodePools/*`.
     * @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.container.v1.NodePool|NodePool}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.get_node_pool.js</caption>
     * region_tag:container_v1_generated_ClusterManager_GetNodePool_async
     */
    getNodePool(request?: protos.google.container.v1.IGetNodePoolRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.INodePool,
        protos.google.container.v1.IGetNodePoolRequest | undefined,
        {} | undefined
    ]>;
    getNodePool(request: protos.google.container.v1.IGetNodePoolRequest, options: CallOptions, callback: Callback<protos.google.container.v1.INodePool, protos.google.container.v1.IGetNodePoolRequest | null | undefined, {} | null | undefined>): void;
    getNodePool(request: protos.google.container.v1.IGetNodePoolRequest, callback: Callback<protos.google.container.v1.INodePool, protos.google.container.v1.IGetNodePoolRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Creates a node pool for a cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the parent field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the parent field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster.
     *   This field has been deprecated and replaced by the parent field.
     * @param {google.container.v1.NodePool} request.nodePool
     *   Required. The node pool to create.
     * @param {string} request.parent
     *   The parent (project, location, cluster name) where the node pool will be
     *   created. Specified in the format
     *   `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.create_node_pool.js</caption>
     * region_tag:container_v1_generated_ClusterManager_CreateNodePool_async
     */
    createNodePool(request?: protos.google.container.v1.ICreateNodePoolRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ICreateNodePoolRequest | undefined,
        {} | undefined
    ]>;
    createNodePool(request: protos.google.container.v1.ICreateNodePoolRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ICreateNodePoolRequest | null | undefined, {} | null | undefined>): void;
    createNodePool(request: protos.google.container.v1.ICreateNodePoolRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ICreateNodePoolRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Deletes a node pool from a cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.nodePoolId
     *   Deprecated. The name of the node pool to delete.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.name
     *   The name (project, location, cluster, node pool id) of the node pool to
     *   delete. Specified in the format
     *   `projects/* /locations/* /clusters/* /nodePools/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.delete_node_pool.js</caption>
     * region_tag:container_v1_generated_ClusterManager_DeleteNodePool_async
     */
    deleteNodePool(request?: protos.google.container.v1.IDeleteNodePoolRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.IDeleteNodePoolRequest | undefined,
        {} | undefined
    ]>;
    deleteNodePool(request: protos.google.container.v1.IDeleteNodePoolRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IDeleteNodePoolRequest | null | undefined, {} | null | undefined>): void;
    deleteNodePool(request: protos.google.container.v1.IDeleteNodePoolRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IDeleteNodePoolRequest | null | undefined, {} | null | undefined>): void;
    /**
     * CompleteNodePoolUpgrade will signal an on-going node pool upgrade to
     * complete.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   The name (project, location, cluster, node pool id) of the node pool to
     *   complete upgrade.
     *   Specified in the format `projects/* /locations/* /clusters/* /nodePools/*`.
     * @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.protobuf.Empty|Empty}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.complete_node_pool_upgrade.js</caption>
     * region_tag:container_v1_generated_ClusterManager_CompleteNodePoolUpgrade_async
     */
    completeNodePoolUpgrade(request?: protos.google.container.v1.ICompleteNodePoolUpgradeRequest, options?: CallOptions): Promise<[
        protos.google.protobuf.IEmpty,
        protos.google.container.v1.ICompleteNodePoolUpgradeRequest | undefined,
        {} | undefined
    ]>;
    completeNodePoolUpgrade(request: protos.google.container.v1.ICompleteNodePoolUpgradeRequest, options: CallOptions, callback: Callback<protos.google.protobuf.IEmpty, protos.google.container.v1.ICompleteNodePoolUpgradeRequest | null | undefined, {} | null | undefined>): void;
    completeNodePoolUpgrade(request: protos.google.container.v1.ICompleteNodePoolUpgradeRequest, callback: Callback<protos.google.protobuf.IEmpty, protos.google.container.v1.ICompleteNodePoolUpgradeRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Rolls back a previously Aborted or Failed NodePool upgrade.
     * This makes no changes if the last upgrade successfully completed.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to rollback.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.nodePoolId
     *   Deprecated. The name of the node pool to rollback.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.name
     *   The name (project, location, cluster, node pool id) of the node poll to
     *   rollback upgrade.
     *   Specified in the format `projects/* /locations/* /clusters/* /nodePools/*`.
     * @param {boolean} request.respectPdb
     *   Option for rollback to ignore the PodDisruptionBudget.
     *   Default value is false.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.rollback_node_pool_upgrade.js</caption>
     * region_tag:container_v1_generated_ClusterManager_RollbackNodePoolUpgrade_async
     */
    rollbackNodePoolUpgrade(request?: protos.google.container.v1.IRollbackNodePoolUpgradeRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.IRollbackNodePoolUpgradeRequest | undefined,
        {} | undefined
    ]>;
    rollbackNodePoolUpgrade(request: protos.google.container.v1.IRollbackNodePoolUpgradeRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IRollbackNodePoolUpgradeRequest | null | undefined, {} | null | undefined>): void;
    rollbackNodePoolUpgrade(request: protos.google.container.v1.IRollbackNodePoolUpgradeRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IRollbackNodePoolUpgradeRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the NodeManagement options for a node pool.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to update.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.nodePoolId
     *   Deprecated. The name of the node pool to update.
     *   This field has been deprecated and replaced by the name field.
     * @param {google.container.v1.NodeManagement} request.management
     *   Required. NodeManagement configuration for the node pool.
     * @param {string} request.name
     *   The name (project, location, cluster, node pool id) of the node pool to set
     *   management properties. Specified in the format
     *   `projects/* /locations/* /clusters/* /nodePools/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_node_pool_management.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetNodePoolManagement_async
     */
    setNodePoolManagement(request?: protos.google.container.v1.ISetNodePoolManagementRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetNodePoolManagementRequest | undefined,
        {} | undefined
    ]>;
    setNodePoolManagement(request: protos.google.container.v1.ISetNodePoolManagementRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetNodePoolManagementRequest | null | undefined, {} | null | undefined>): void;
    setNodePoolManagement(request: protos.google.container.v1.ISetNodePoolManagementRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetNodePoolManagementRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets labels on a cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster.
     *   This field has been deprecated and replaced by the name field.
     * @param {number[]} request.resourceLabels
     *   Required. The labels to set for that cluster.
     * @param {string} request.labelFingerprint
     *   Required. The fingerprint of the previous set of labels for this resource,
     *   used to detect conflicts. The fingerprint is initially generated by
     *   Kubernetes Engine and changes after every request to modify or update
     *   labels. You must always provide an up-to-date fingerprint hash when
     *   updating or changing labels. Make a `get()` request to the
     *   resource to get the latest fingerprint.
     * @param {string} request.name
     *   The name (project, location, cluster name) of the cluster to set labels.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_labels.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetLabels_async
     */
    setLabels(request?: protos.google.container.v1.ISetLabelsRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetLabelsRequest | undefined,
        {} | undefined
    ]>;
    setLabels(request: protos.google.container.v1.ISetLabelsRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetLabelsRequest | null | undefined, {} | null | undefined>): void;
    setLabels(request: protos.google.container.v1.ISetLabelsRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetLabelsRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Enables or disables the ABAC authorization mechanism on a cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to update.
     *   This field has been deprecated and replaced by the name field.
     * @param {boolean} request.enabled
     *   Required. Whether ABAC authorization will be enabled in the cluster.
     * @param {string} request.name
     *   The name (project, location, cluster name) of the cluster to set legacy
     *   abac. Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_legacy_abac.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetLegacyAbac_async
     */
    setLegacyAbac(request?: protos.google.container.v1.ISetLegacyAbacRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetLegacyAbacRequest | undefined,
        {} | undefined
    ]>;
    setLegacyAbac(request: protos.google.container.v1.ISetLegacyAbacRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetLegacyAbacRequest | null | undefined, {} | null | undefined>): void;
    setLegacyAbac(request: protos.google.container.v1.ISetLegacyAbacRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetLegacyAbacRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Starts master IP rotation.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.name
     *   The name (project, location, cluster name) of the cluster to start IP
     *   rotation. Specified in the format `projects/* /locations/* /clusters/*`.
     * @param {boolean} request.rotateCredentials
     *   Whether to rotate credentials during IP rotation.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.start_i_p_rotation.js</caption>
     * region_tag:container_v1_generated_ClusterManager_StartIPRotation_async
     */
    startIPRotation(request?: protos.google.container.v1.IStartIPRotationRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.IStartIPRotationRequest | undefined,
        {} | undefined
    ]>;
    startIPRotation(request: protos.google.container.v1.IStartIPRotationRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IStartIPRotationRequest | null | undefined, {} | null | undefined>): void;
    startIPRotation(request: protos.google.container.v1.IStartIPRotationRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.IStartIPRotationRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Completes master IP rotation.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.name
     *   The name (project, location, cluster name) of the cluster to complete IP
     *   rotation. Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.complete_i_p_rotation.js</caption>
     * region_tag:container_v1_generated_ClusterManager_CompleteIPRotation_async
     */
    completeIPRotation(request?: protos.google.container.v1.ICompleteIPRotationRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ICompleteIPRotationRequest | undefined,
        {} | undefined
    ]>;
    completeIPRotation(request: protos.google.container.v1.ICompleteIPRotationRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ICompleteIPRotationRequest | null | undefined, {} | null | undefined>): void;
    completeIPRotation(request: protos.google.container.v1.ICompleteIPRotationRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ICompleteIPRotationRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the size for a specific node pool. The new size will be used for all
     * replicas, including future replicas created by modifying
     * {@link protos.google.container.v1.NodePool.locations|NodePool.locations}.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster to update.
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.nodePoolId
     *   Deprecated. The name of the node pool to update.
     *   This field has been deprecated and replaced by the name field.
     * @param {number} request.nodeCount
     *   Required. The desired node count for the pool.
     * @param {string} request.name
     *   The name (project, location, cluster, node pool id) of the node pool to set
     *   size.
     *   Specified in the format `projects/* /locations/* /clusters/* /nodePools/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_node_pool_size.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetNodePoolSize_async
     */
    setNodePoolSize(request?: protos.google.container.v1.ISetNodePoolSizeRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetNodePoolSizeRequest | undefined,
        {} | undefined
    ]>;
    setNodePoolSize(request: protos.google.container.v1.ISetNodePoolSizeRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetNodePoolSizeRequest | null | undefined, {} | null | undefined>): void;
    setNodePoolSize(request: protos.google.container.v1.ISetNodePoolSizeRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetNodePoolSizeRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Enables or disables Network Policy for a cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Deprecated. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     *   This field has been deprecated and replaced by the name field.
     * @param {string} request.zone
     *   Deprecated. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides. This field has been deprecated and replaced
     *   by the name field.
     * @param {string} request.clusterId
     *   Deprecated. The name of the cluster.
     *   This field has been deprecated and replaced by the name field.
     * @param {google.container.v1.NetworkPolicy} request.networkPolicy
     *   Required. Configuration options for the NetworkPolicy feature.
     * @param {string} request.name
     *   The name (project, location, cluster name) of the cluster to set networking
     *   policy. Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_network_policy.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetNetworkPolicy_async
     */
    setNetworkPolicy(request?: protos.google.container.v1.ISetNetworkPolicyRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetNetworkPolicyRequest | undefined,
        {} | undefined
    ]>;
    setNetworkPolicy(request: protos.google.container.v1.ISetNetworkPolicyRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetNetworkPolicyRequest | null | undefined, {} | null | undefined>): void;
    setNetworkPolicy(request: protos.google.container.v1.ISetNetworkPolicyRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetNetworkPolicyRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Sets the maintenance policy for a cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.projectId
     *   Required. The Google Developers Console [project ID or project
     *   number](https://cloud.google.com/resource-manager/docs/creating-managing-projects).
     * @param {string} request.zone
     *   Required. The name of the Google Compute Engine
     *   [zone](https://cloud.google.com/compute/docs/zones#available)
     *   in which the cluster resides.
     * @param {string} request.clusterId
     *   Required. The name of the cluster to update.
     * @param {google.container.v1.MaintenancePolicy} request.maintenancePolicy
     *   Required. The maintenance policy to be set for the cluster. An empty field
     *   clears the existing maintenance policy.
     * @param {string} request.name
     *   The name (project, location, cluster name) of the cluster to set
     *   maintenance policy.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.Operation|Operation}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.set_maintenance_policy.js</caption>
     * region_tag:container_v1_generated_ClusterManager_SetMaintenancePolicy_async
     */
    setMaintenancePolicy(request?: protos.google.container.v1.ISetMaintenancePolicyRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IOperation,
        protos.google.container.v1.ISetMaintenancePolicyRequest | undefined,
        {} | undefined
    ]>;
    setMaintenancePolicy(request: protos.google.container.v1.ISetMaintenancePolicyRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetMaintenancePolicyRequest | null | undefined, {} | null | undefined>): void;
    setMaintenancePolicy(request: protos.google.container.v1.ISetMaintenancePolicyRequest, callback: Callback<protos.google.container.v1.IOperation, protos.google.container.v1.ISetMaintenancePolicyRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Checks the cluster compatibility with Autopilot mode, and returns a list of
     * compatibility issues.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   The name (project, location, cluster) of the cluster to retrieve.
     *   Specified in the format `projects/* /locations/* /clusters/*`.
     * @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.container.v1.CheckAutopilotCompatibilityResponse|CheckAutopilotCompatibilityResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.check_autopilot_compatibility.js</caption>
     * region_tag:container_v1_generated_ClusterManager_CheckAutopilotCompatibility_async
     */
    checkAutopilotCompatibility(request?: protos.google.container.v1.ICheckAutopilotCompatibilityRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.ICheckAutopilotCompatibilityResponse,
        protos.google.container.v1.ICheckAutopilotCompatibilityRequest | undefined,
        {} | undefined
    ]>;
    checkAutopilotCompatibility(request: protos.google.container.v1.ICheckAutopilotCompatibilityRequest, options: CallOptions, callback: Callback<protos.google.container.v1.ICheckAutopilotCompatibilityResponse, protos.google.container.v1.ICheckAutopilotCompatibilityRequest | null | undefined, {} | null | undefined>): void;
    checkAutopilotCompatibility(request: protos.google.container.v1.ICheckAutopilotCompatibilityRequest, callback: Callback<protos.google.container.v1.ICheckAutopilotCompatibilityResponse, protos.google.container.v1.ICheckAutopilotCompatibilityRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Fetch upgrade information of a specific cluster.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name (project, location, cluster) of the cluster to get.
     *   Specified in the format `projects/* /locations/* /clusters/*` or
     *   `projects/* /zones/* /clusters/*`.
     * @param {string} request.version
     *   API request version that initiates this operation.
     * @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.container.v1.ClusterUpgradeInfo|ClusterUpgradeInfo}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.fetch_cluster_upgrade_info.js</caption>
     * region_tag:container_v1_generated_ClusterManager_FetchClusterUpgradeInfo_async
     */
    fetchClusterUpgradeInfo(request?: protos.google.container.v1.IFetchClusterUpgradeInfoRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IClusterUpgradeInfo,
        protos.google.container.v1.IFetchClusterUpgradeInfoRequest | undefined,
        {} | undefined
    ]>;
    fetchClusterUpgradeInfo(request: protos.google.container.v1.IFetchClusterUpgradeInfoRequest, options: CallOptions, callback: Callback<protos.google.container.v1.IClusterUpgradeInfo, protos.google.container.v1.IFetchClusterUpgradeInfoRequest | null | undefined, {} | null | undefined>): void;
    fetchClusterUpgradeInfo(request: protos.google.container.v1.IFetchClusterUpgradeInfoRequest, callback: Callback<protos.google.container.v1.IClusterUpgradeInfo, protos.google.container.v1.IFetchClusterUpgradeInfoRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Fetch upgrade information of a specific node pool.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The name (project, location, cluster, node pool) of the node pool
     *   to get. Specified in the format
     *   `projects/* /locations/* /clusters/* /nodePools/*` or
     *   `projects/* /zones/* /clusters/* /nodePools/*`.
     * @param {string} request.version
     *   API request version that initiates this operation.
     * @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.container.v1.NodePoolUpgradeInfo|NodePoolUpgradeInfo}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.fetch_node_pool_upgrade_info.js</caption>
     * region_tag:container_v1_generated_ClusterManager_FetchNodePoolUpgradeInfo_async
     */
    fetchNodePoolUpgradeInfo(request?: protos.google.container.v1.IFetchNodePoolUpgradeInfoRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.INodePoolUpgradeInfo,
        protos.google.container.v1.IFetchNodePoolUpgradeInfoRequest | undefined,
        {} | undefined
    ]>;
    fetchNodePoolUpgradeInfo(request: protos.google.container.v1.IFetchNodePoolUpgradeInfoRequest, options: CallOptions, callback: Callback<protos.google.container.v1.INodePoolUpgradeInfo, protos.google.container.v1.IFetchNodePoolUpgradeInfoRequest | null | undefined, {} | null | undefined>): void;
    fetchNodePoolUpgradeInfo(request: protos.google.container.v1.IFetchNodePoolUpgradeInfoRequest, callback: Callback<protos.google.container.v1.INodePoolUpgradeInfo, protos.google.container.v1.IFetchNodePoolUpgradeInfoRequest | null | undefined, {} | null | undefined>): void;
    /**
    * Lists subnetworks that are usable for creating clusters in a project.
    *
    * @param {Object} request
    *   The request object that will be sent.
    * @param {string} request.parent
    *   The parent project where subnetworks are usable.
    *   Specified in the format `projects/*`.
    * @param {string} request.filter
    *   Filtering currently only supports equality on the networkProjectId and must
    *   be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
    *   is the project which owns the listed subnetworks. This defaults to the
    *   parent project ID.
    * @param {number} request.pageSize
    *   The max number of results per page that should be returned. If the number
    *   of available results is larger than `page_size`, a `next_page_token` is
    *   returned which can be used to get the next page of results in subsequent
    *   requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
    * @param {string} request.pageToken
    *   Specifies a page token to use. Set this to the nextPageToken returned by
    *   previous list requests to get the next page of results.
    * @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.container.v1.UsableSubnetwork|UsableSubnetwork}.
    *   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 `listUsableSubnetworksAsync()`
    *   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.
    */
    listUsableSubnetworks(request?: protos.google.container.v1.IListUsableSubnetworksRequest, options?: CallOptions): Promise<[
        protos.google.container.v1.IUsableSubnetwork[],
        protos.google.container.v1.IListUsableSubnetworksRequest | null,
        protos.google.container.v1.IListUsableSubnetworksResponse
    ]>;
    listUsableSubnetworks(request: protos.google.container.v1.IListUsableSubnetworksRequest, options: CallOptions, callback: PaginationCallback<protos.google.container.v1.IListUsableSubnetworksRequest, protos.google.container.v1.IListUsableSubnetworksResponse | null | undefined, protos.google.container.v1.IUsableSubnetwork>): void;
    listUsableSubnetworks(request: protos.google.container.v1.IListUsableSubnetworksRequest, callback: PaginationCallback<protos.google.container.v1.IListUsableSubnetworksRequest, protos.google.container.v1.IListUsableSubnetworksResponse | null | undefined, protos.google.container.v1.IUsableSubnetwork>): void;
    /**
     * Equivalent to `listUsableSubnetworks`, but returns a NodeJS Stream object.
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.parent
     *   The parent project where subnetworks are usable.
     *   Specified in the format `projects/*`.
     * @param {string} request.filter
     *   Filtering currently only supports equality on the networkProjectId and must
     *   be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
     *   is the project which owns the listed subnetworks. This defaults to the
     *   parent project ID.
     * @param {number} request.pageSize
     *   The max number of results per page that should be returned. If the number
     *   of available results is larger than `page_size`, a `next_page_token` is
     *   returned which can be used to get the next page of results in subsequent
     *   requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
     * @param {string} request.pageToken
     *   Specifies a page token to use. Set this to the nextPageToken returned by
     *   previous list requests to get the next page of results.
     * @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.container.v1.UsableSubnetwork|UsableSubnetwork} 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 `listUsableSubnetworksAsync()`
     *   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.
     */
    listUsableSubnetworksStream(request?: protos.google.container.v1.IListUsableSubnetworksRequest, options?: CallOptions): Transform;
    /**
     * Equivalent to `listUsableSubnetworks`, 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.parent
     *   The parent project where subnetworks are usable.
     *   Specified in the format `projects/*`.
     * @param {string} request.filter
     *   Filtering currently only supports equality on the networkProjectId and must
     *   be in the form: "networkProjectId=[PROJECTID]", where `networkProjectId`
     *   is the project which owns the listed subnetworks. This defaults to the
     *   parent project ID.
     * @param {number} request.pageSize
     *   The max number of results per page that should be returned. If the number
     *   of available results is larger than `page_size`, a `next_page_token` is
     *   returned which can be used to get the next page of results in subsequent
     *   requests. Acceptable values are 0 to 500, inclusive. (Default: 500)
     * @param {string} request.pageToken
     *   Specifies a page token to use. Set this to the nextPageToken returned by
     *   previous list requests to get the next page of results.
     * @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.container.v1.UsableSubnetwork|UsableSubnetwork}. The API will be called under the hood as needed, once per the page,
     *   so you can stop the iteration when you don't need more results.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#auto-pagination | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/cluster_manager.list_usable_subnetworks.js</caption>
     * region_tag:container_v1_generated_ClusterManager_ListUsableSubnetworks_async
     */
    listUsableSubnetworksAsync(request?: protos.google.container.v1.IListUsableSubnetworksRequest, options?: CallOptions): AsyncIterable<protos.google.container.v1.IUsableSubnetwork>;
    /**
     * Return a fully-qualified caPool resource name string.
     *
     * @param {string} project
     * @param {string} location
     * @param {string} ca_pool
     * @returns {string} Resource name string.
     */
    caPoolPath(project: string, location: string, caPool: string): string;
    /**
     * Parse the project from CaPool resource.
     *
     * @param {string} caPoolName
     *   A fully-qualified path representing CaPool resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromCaPoolName(caPoolName: string): string | number;
    /**
     * Parse the location from CaPool resource.
     *
     * @param {string} caPoolName
     *   A fully-qualified path representing CaPool resource.
     * @returns {string} A string representing the location.
     */
    matchLocationFromCaPoolName(caPoolName: string): string | number;
    /**
     * Parse the ca_pool from CaPool resource.
     *
     * @param {string} caPoolName
     *   A fully-qualified path representing CaPool resource.
     * @returns {string} A string representing the ca_pool.
     */
    matchCaPoolFromCaPoolName(caPoolName: string): string | number;
    /**
     * Return a fully-qualified cryptoKeyVersion resource name string.
     *
     * @param {string} project
     * @param {string} location
     * @param {string} key_ring
     * @param {string} crypto_key
     * @param {string} crypto_key_version
     * @returns {string} Resource name string.
     */
    cryptoKeyVersionPath(project: string, location: string, keyRing: string, cryptoKey: string, cryptoKeyVersion: string): string;
    /**
     * Parse the project from CryptoKeyVersion resource.
     *
     * @param {string} cryptoKeyVersionName
     *   A fully-qualified path representing CryptoKeyVersion resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromCryptoKeyVersionName(cryptoKeyVersionName: string): string | number;
    /**
     * Parse the location from CryptoKeyVersion resource.
     *
     * @param {string} cryptoKeyVersionName
     *   A fully-qualified path representing CryptoKeyVersion resource.
     * @returns {string} A string representing the location.
     */
    matchLocationFromCryptoKeyVersionName(cryptoKeyVersionName: string): string | number;
    /**
     * Parse the key_ring from CryptoKeyVersion resource.
     *
     * @param {string} cryptoKeyVersionName
     *   A fully-qualified path representing CryptoKeyVersion resource.
     * @returns {string} A string representing the key_ring.
     */
    matchKeyRingFromCryptoKeyVersionName(cryptoKeyVersionName: string): string | number;
    /**
     * Parse the crypto_key from CryptoKeyVersion resource.
     *
     * @param {string} cryptoKeyVersionName
     *   A fully-qualified path representing CryptoKeyVersion resource.
     * @returns {string} A string representing the crypto_key.
     */
    matchCryptoKeyFromCryptoKeyVersionName(cryptoKeyVersionName: string): string | number;
    /**
     * Parse the crypto_key_version from CryptoKeyVersion resource.
     *
     * @param {string} cryptoKeyVersionName
     *   A fully-qualified path representing CryptoKeyVersion resource.
     * @returns {string} A string representing the crypto_key_version.
     */
    matchCryptoKeyVersionFromCryptoKeyVersionName(cryptoKeyVersionName: string): string | number;
    /**
     * Return a fully-qualified subnetwork resource name string.
     *
     * @param {string} project
     * @param {string} region
     * @param {string} subnetwork
     * @returns {string} Resource name string.
     */
    subnetworkPath(project: string, region: string, subnetwork: string): string;
    /**
     * Parse the project from Subnetwork resource.
     *
     * @param {string} subnetworkName
     *   A fully-qualified path representing Subnetwork resource.
     * @returns {string} A string representing the project.
     */
    matchProjectFromSubnetworkName(subnetworkName: string): string | number;
    /**
     * Parse the region from Subnetwork resource.
     *
     * @param {string} subnetworkName
     *   A fully-qualified path representing Subnetwork resource.
     * @returns {string} A string representing the region.
     */
    matchRegionFromSubnetworkName(subnetworkName: string): string | number;
    /**
     * Parse the subnetwork from Subnetwork resource.
     *
     * @param {string} subnetworkName
     *   A fully-qualified path representing Subnetwork resource.
     * @returns {string} A string representing the subnetwork.
     */
    matchSubnetworkFromSubnetworkName(subnetworkName: string): string | number;
    /**
     * 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>;
}
