1 5
// Copyright 2020 Google LLC
2 5
//
3 5
// Licensed under the Apache License, Version 2.0 (the "License");
4 5
// you may not use this file except in compliance with the License.
5 5
// You may obtain a copy of the License at
6 5
//
7 5
//     https://www.apache.org/licenses/LICENSE-2.0
8 5
//
9 5
// Unless required by applicable law or agreed to in writing, software
10 5
// distributed under the License is distributed on an "AS IS" BASIS,
11 5
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 5
// See the License for the specific language governing permissions and
13 5
// limitations under the License.
14 5
//
15 5
// ** This file is automatically generated by gapic-generator-typescript. **
16 5
// ** https://github.com/googleapis/gapic-generator-typescript **
17 5
// ** All changes to this file may be overwritten. **
18 5

19 5
/* global window */
20 5
import * as gax from 'google-gax';
21 5
import {
22 5
  Callback,
23 5
  CallOptions,
24 5
  Descriptors,
25 5
  ClientOptions,
26 5
  PaginationCallback,
27 5
  GaxCall,
28 5
} from 'google-gax';
29 5
import * as path from 'path';
30 5

31 5
import {Transform} from 'stream';
32 5
import {RequestType} from 'google-gax/build/src/apitypes';
33 5
import * as protos from '../../protos/protos';
34 5
/**
35 5
 * Client JSON configuration object, loaded from
36 5
 * `src/v1/cluster_manager_client_config.json`.
37 5
 * This file defines retry strategy and timeouts for all API methods in this library.
38 5
 */
39 5
import * as gapicConfig from './cluster_manager_client_config.json';
40 5

41 5
const version = require('../../../package.json').version;
42 5

43 5
/**
44 5
 *  Google Kubernetes Engine Cluster Manager v1
45 5
 * @class
46 5
 * @memberof v1
47 5
 */
48 5
export class ClusterManagerClient {
49 5
  private _terminated = false;
50 5
  private _opts: ClientOptions;
51 5
  private _gaxModule: typeof gax | typeof gax.fallback;
52 5
  private _gaxGrpc: gax.GrpcClient | gax.fallback.GrpcClient;
53 5
  private _protos: {};
54 5
  private _defaults: {[method: string]: gax.CallSettings};
55 5
  auth: gax.GoogleAuth;
56 5
  descriptors: Descriptors = {
57 5
    page: {},
58 5
    stream: {},
59 5
    longrunning: {},
60 5
    batching: {},
61 5
  };
62 5
  innerApiCalls: {[name: string]: Function};
63 5
  clusterManagerStub?: Promise<{[name: string]: Function}>;
64 5

65 5
  /**
66 5
   * Construct an instance of ClusterManagerClient.
67 5
   *
68 5
   * @param {object} [options] - The configuration object.
69 5
   * The options accepted by the constructor are described in detail
70 5
   * in [this document](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#creating-the-client-instance).
71 5
   * The common options are:
72 5
   * @param {object} [options.credentials] - Credentials object.
73 5
   * @param {string} [options.credentials.client_email]
74 5
   * @param {string} [options.credentials.private_key]
75 5
   * @param {string} [options.email] - Account email address. Required when
76 5
   *     using a .pem or .p12 keyFilename.
77 5
   * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or
78 5
   *     .p12 key downloaded from the Google Developers Console. If you provide
79 5
   *     a path to a JSON file, the projectId option below is not necessary.
80 5
   *     NOTE: .pem and .p12 require you to specify options.email as well.
81 5
   * @param {number} [options.port] - The port on which to connect to
82 5
   *     the remote host.
83 5
   * @param {string} [options.projectId] - The project ID from the Google
84 5
   *     Developer's Console, e.g. 'grape-spaceship-123'. We will also check
85 5
   *     the environment variable GCLOUD_PROJECT for your project ID. If your
86 5
   *     app is running in an environment which supports
87 5
   *     {@link https://developers.google.com/identity/protocols/application-default-credentials Application Default Credentials},
88 5
   *     your project ID will be detected automatically.
89 5
   * @param {string} [options.apiEndpoint] - The domain name of the
90 5
   *     API remote host.
91 5
   * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override.
92 5
   *     Follows the structure of {@link gapicConfig}.
93 5
   * @param {boolean} [options.fallback] - Use HTTP fallback mode.
94 5
   *     In fallback mode, a special browser-compatible transport implementation is used
95 5
   *     instead of gRPC transport. In browser context (if the `window` object is defined)
96 5
   *     the fallback mode is enabled automatically; set `options.fallback` to `false`
97 5
   *     if you need to override this behavior.
98 5
   */
99 5
  constructor(opts?: ClientOptions) {
100 5
    // Ensure that options include all the required fields.
101 5
    const staticMembers = this.constructor as typeof ClusterManagerClient;
102 5
    const servicePath =
103 5
      opts?.servicePath || opts?.apiEndpoint || staticMembers.servicePath;
104 5
    const port = opts?.port || staticMembers.port;
105 5
    const clientConfig = opts?.clientConfig ?? {};
106 5
    const fallback =
107 5
      opts?.fallback ??
108 5
      (typeof window !== 'undefined' && typeof window?.fetch === 'function');
109 5
    opts = Object.assign({servicePath, port, clientConfig, fallback}, opts);
110 5

111 5
    // If scopes are unset in options and we're connecting to a non-default endpoint, set scopes just in case.
112 5
    if (servicePath !== staticMembers.servicePath && !('scopes' in opts)) {
113 0
      opts['scopes'] = staticMembers.scopes;
114 0
    }
115 5

116 5
    // Choose either gRPC or proto-over-HTTP implementation of google-gax.
117 5
    this._gaxModule = opts.fallback ? gax.fallback : gax;
118 5

119 5
    // Create a `gaxGrpc` object, with any grpc-specific options sent to the client.
120 5
    this._gaxGrpc = new this._gaxModule.GrpcClient(opts);
121 5

122 5
    // Save options to use in initialize() method.
123 5
    this._opts = opts;
124 5

125 5
    // Save the auth object to the client, for use by other methods.
126 5
    this.auth = this._gaxGrpc.auth as gax.GoogleAuth;
127 5

128 5
    // Set the default scopes in auth client if needed.
129 5
    if (servicePath === staticMembers.servicePath) {
130 5
      this.auth.defaultScopes = staticMembers.scopes;
131 5
    }
132 5

133 5
    // Determine the client header string.
134 5
    const clientHeader = [`gax/${this._gaxModule.version}`, `gapic/${version}`];
135 5
    if (typeof process !== 'undefined' && 'versions' in process) {
136 5
      clientHeader.push(`gl-node/${process.versions.node}`);
137 5
    } else {
138 0
      clientHeader.push(`gl-web/${this._gaxModule.version}`);
139 0
    }
140 5
    if (!opts.fallback) {
141 5
      clientHeader.push(`grpc/${this._gaxGrpc.grpcVersion}`);
142 5
    }
143 5
    if (opts.libName && opts.libVersion) {
144 0
      clientHeader.push(`${opts.libName}/${opts.libVersion}`);
145 0
    }
146 5
    // Load the applicable protos.
147 5
    // For Node.js, pass the path to JSON proto file.
148 5
    // For browsers, pass the JSON content.
149 5

150 5
    const nodejsProtoPath = path.join(
151 5
      __dirname,
152 5
      '..',
153 5
      '..',
154 5
      'protos',
155 5
      'protos.json'
156 5
    );
157 5
    this._protos = this._gaxGrpc.loadProto(
158 5
      opts.fallback
159 5
        ? // eslint-disable-next-line @typescript-eslint/no-var-requires
160 5
          require('../../protos/protos.json')
161 5
        : nodejsProtoPath
162 5
    );
163 5

164 5
    // Some of the methods on this service return "paged" results,
165 5
    // (e.g. 50 results at a time, with tokens to get subsequent
166 5
    // pages). Denote the keys used for pagination and results.
167 5
    this.descriptors.page = {
168 5
      listUsableSubnetworks: new this._gaxModule.PageDescriptor(
169 5
        'pageToken',
170 5
        'nextPageToken',
171 5
        'subnetworks'
172 5
      ),
173 5
    };
174 5

175 5
    // Put together the default options sent with requests.
176 5
    this._defaults = this._gaxGrpc.constructSettings(
177 5
      'google.container.v1.ClusterManager',
178 5
      gapicConfig as gax.ClientConfig,
179 5
      opts.clientConfig || {},
180 5
      {'x-goog-api-client': clientHeader.join(' ')}
181 5
    );
182 5

183 5
    // Set up a dictionary of "inner API calls"; the core implementation
184 5
    // of calling the API is handled in `google-gax`, with this code
185 5
    // merely providing the destination and request information.
186 5
    this.innerApiCalls = {};
187 5
  }
188 5

189 5
  /**
190 5
   * Initialize the client.
191 5
   * Performs asynchronous operations (such as authentication) and prepares the client.
192 5
   * This function will be called automatically when any class method is called for the
193 5
   * first time, but if you need to initialize it before calling an actual method,
194 5
   * feel free to call initialize() directly.
195 5
   *
196 5
   * You can await on this method if you want to make sure the client is initialized.
197 5
   *
198 5
   * @returns {Promise} A promise that resolves to an authenticated service stub.
199 5
   */
200 5
  initialize() {
201 5
    // If the client stub promise is already initialized, return immediately.
202 5
    if (this.clusterManagerStub) {
203 5
      return this.clusterManagerStub;
204 5
    }
205 5

206 5
    // Put together the "service stub" for
207 5
    // google.container.v1.ClusterManager.
208 5
    this.clusterManagerStub = this._gaxGrpc.createStub(
209 5
      this._opts.fallback
210 5
        ? (this._protos as protobuf.Root).lookupService(
211 0
            'google.container.v1.ClusterManager'
212 5
          )
213 5
        : // eslint-disable-next-line @typescript-eslint/no-explicit-any
214 5
          (this._protos as any).google.container.v1.ClusterManager,
215 5
      this._opts
216 5
    ) as Promise<{[method: string]: Function}>;
217 5

218 5
    // Iterate over each of the methods that the service provides
219 5
    // and create an API call method for each.
220 5
    const clusterManagerStubMethods = [
221 5
      'listClusters',
222 5
      'getCluster',
223 5
      'createCluster',
224 5
      'updateCluster',
225 5
      'updateNodePool',
226 5
      'setNodePoolAutoscaling',
227 5
      'setLoggingService',
228 5
      'setMonitoringService',
229 5
      'setAddonsConfig',
230 5
      'setLocations',
231 5
      'updateMaster',
232 5
      'setMasterAuth',
233 5
      'deleteCluster',
234 5
      'listOperations',
235 5
      'getOperation',
236 5
      'cancelOperation',
237 5
      'getServerConfig',
238 5
      'getJSONWebKeys',
239 5
      'listNodePools',
240 5
      'getNodePool',
241 5
      'createNodePool',
242 5
      'deleteNodePool',
243 5
      'rollbackNodePoolUpgrade',
244 5
      'setNodePoolManagement',
245 5
      'setLabels',
246 5
      'setLegacyAbac',
247 5
      'startIPRotation',
248 5
      'completeIPRotation',
249 5
      'setNodePoolSize',
250 5
      'setNetworkPolicy',
251 5
      'setMaintenancePolicy',
252 5
      'listUsableSubnetworks',
253 5
    ];
254 5
    for (const methodName of clusterManagerStubMethods) {
255 5
      const callPromise = this.clusterManagerStub.then(
256 5
        stub => (...args: Array<{}>) => {
257 0
          if (this._terminated) {
258 0
            return Promise.reject('The client has already been closed.');
259 0
          }
260 0
          const func = stub[methodName];
261 0
          return func.apply(stub, args);
262 5
        },
263 5
        (err: Error | null | undefined) => () => {
264 0
          throw err;
265 0
        }
266 5
      );
267 5

268 5
      const descriptor = this.descriptors.page[methodName] || undefined;
269 5
      const apiCall = this._gaxModule.createApiCall(
270 5
        callPromise,
271 5
        this._defaults[methodName],
272 5
        descriptor
273 5
      );
274 5

275 5
      this.innerApiCalls[methodName] = apiCall;
276 5
    }
277 5

278 5
    return this.clusterManagerStub;
279 5
  }
280 5

281 5
  /**
282 5
   * The DNS address for this API service.
283 5
   * @returns {string} The DNS address for this service.
284 5
   */
285 5
  static get servicePath() {
286 5
    return 'container.googleapis.com';
287 5
  }
288 5

289 5
  /**
290 5
   * The DNS address for this API service - same as servicePath(),
291 5
   * exists for compatibility reasons.
292 5
   * @returns {string} The DNS address for this service.
293 5
   */
294 5
  static get apiEndpoint() {
295 5
    return 'container.googleapis.com';
296 5
  }
297 5

298 5
  /**
299 5
   * The port for this API service.
300 5
   * @returns {number} The default port for this service.
301 5
   */
302 5
  static get port() {
303 5
    return 443;
304 5
  }
305 5

306 5
  /**
307 5
   * The scopes needed to make gRPC calls for every method defined
308 5
   * in this service.
309 5
   * @returns {string[]} List of default scopes.
310 5
   */
311 5
  static get scopes() {
312 5
    return ['https://www.googleapis.com/auth/cloud-platform'];
313 5
  }
314 5

315 5
  getProjectId(): Promise<string>;
316 5
  getProjectId(callback: Callback<string, undefined, undefined>): void;
317 5
  /**
318 5
   * Return the project ID used by this class.
319 5
   * @returns {Promise} A promise that resolves to string containing the project ID.
320 5
   */
321 5
  getProjectId(
322 5
    callback?: Callback<string, undefined, undefined>
323 5
  ): Promise<string> | void {
324 5
    if (callback) {
325 5
      this.auth.getProjectId(callback);
326 5
      return;
327 5
    }
328 5
    return this.auth.getProjectId();
329 5
  }
330 5

331 5
  // -------------------
332 5
  // -- Service calls --
333 5
  // -------------------
334 5
  listClusters(
335 5
    request: protos.google.container.v1.IListClustersRequest,
336 5
    options?: CallOptions
337 5
  ): Promise<
338 5
    [
339 5
      protos.google.container.v1.IListClustersResponse,
340 5
      protos.google.container.v1.IListClustersRequest | undefined,
341 5
      {} | undefined
342 5
    ]
343 5
  >;
344 5
  listClusters(
345 5
    request: protos.google.container.v1.IListClustersRequest,
346 5
    options: CallOptions,
347 5
    callback: Callback<
348 5
      protos.google.container.v1.IListClustersResponse,
349 5
      protos.google.container.v1.IListClustersRequest | null | undefined,
350 5
      {} | null | undefined
351 5
    >
352 5
  ): void;
353 5
  listClusters(
354 5
    request: protos.google.container.v1.IListClustersRequest,
355 5
    callback: Callback<
356 5
      protos.google.container.v1.IListClustersResponse,
357 5
      protos.google.container.v1.IListClustersRequest | null | undefined,
358 5
      {} | null | undefined
359 5
    >
360 5
  ): void;
361 5
  /**
362 5
   * Lists all clusters owned by a project in either the specified zone or all
363 5
   * zones.
364 5
   *
365 5
   * @param {Object} request
366 5
   *   The request object that will be sent.
367 5
   * @param {string} request.projectId
368 5
   *   Deprecated. The Google Developers Console [project ID or project
369 5
   *   number](https://support.google.com/cloud/answer/6158840).
370 5
   *   This field has been deprecated and replaced by the parent field.
371 5
   * @param {string} request.zone
372 5
   *   Deprecated. The name of the Google Compute Engine
373 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
374 5
   *   cluster resides, or "-" for all zones. This field has been deprecated and
375 5
   *   replaced by the parent field.
376 5
   * @param {string} request.parent
377 5
   *   The parent (project and location) where the clusters will be listed.
378 5
   *   Specified in the format `projects/* /locations/*`.
379 5
   *   Location "-" matches all zones and all regions.
380 5
   * @param {object} [options]
381 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
382 5
   * @returns {Promise} - The promise which resolves to an array.
383 5
   *   The first element of the array is an object representing [ListClustersResponse]{@link google.container.v1.ListClustersResponse}.
384 5
   *   Please see the
385 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
386 5
   *   for more details and examples.
387 5
   * @example
388 5
   * const [response] = await client.listClusters(request);
389 5
   */
390 5
  listClusters(
391 5
    request: protos.google.container.v1.IListClustersRequest,
392 5
    optionsOrCallback?:
393 5
      | CallOptions
394 5
      | Callback<
395 5
          protos.google.container.v1.IListClustersResponse,
396 5
          protos.google.container.v1.IListClustersRequest | null | undefined,
397 5
          {} | null | undefined
398 5
        >,
399 5
    callback?: Callback<
400 5
      protos.google.container.v1.IListClustersResponse,
401 5
      protos.google.container.v1.IListClustersRequest | null | undefined,
402 5
      {} | null | undefined
403 5
    >
404 5
  ): Promise<
405 5
    [
406 5
      protos.google.container.v1.IListClustersResponse,
407 5
      protos.google.container.v1.IListClustersRequest | undefined,
408 5
      {} | undefined
409 5
    ]
410 5
  > | void {
411 5
    request = request || {};
412 5
    let options: CallOptions;
413 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
414 5
      callback = optionsOrCallback;
415 5
      options = {};
416 5
    } else {
417 5
      options = optionsOrCallback as CallOptions;
418 5
    }
419 5
    options = options || {};
420 5
    options.otherArgs = options.otherArgs || {};
421 5
    options.otherArgs.headers = options.otherArgs.headers || {};
422 5
    options.otherArgs.headers[
423 5
      'x-goog-request-params'
424 5
    ] = gax.routingHeader.fromParams({
425 5
      parent: request.parent || '',
426 5
      project_id: request.projectId || '',
427 5
    });
428 5
    this.initialize();
429 5
    return this.innerApiCalls.listClusters(request, options, callback);
430 5
  }
431 5
  getCluster(
432 5
    request: protos.google.container.v1.IGetClusterRequest,
433 5
    options?: CallOptions
434 5
  ): Promise<
435 5
    [
436 5
      protos.google.container.v1.ICluster,
437 5
      protos.google.container.v1.IGetClusterRequest | undefined,
438 5
      {} | undefined
439 5
    ]
440 5
  >;
441 5
  getCluster(
442 5
    request: protos.google.container.v1.IGetClusterRequest,
443 5
    options: CallOptions,
444 5
    callback: Callback<
445 5
      protos.google.container.v1.ICluster,
446 5
      protos.google.container.v1.IGetClusterRequest | null | undefined,
447 5
      {} | null | undefined
448 5
    >
449 5
  ): void;
450 5
  getCluster(
451 5
    request: protos.google.container.v1.IGetClusterRequest,
452 5
    callback: Callback<
453 5
      protos.google.container.v1.ICluster,
454 5
      protos.google.container.v1.IGetClusterRequest | null | undefined,
455 5
      {} | null | undefined
456 5
    >
457 5
  ): void;
458 5
  /**
459 5
   * Gets the details of a specific cluster.
460 5
   *
461 5
   * @param {Object} request
462 5
   *   The request object that will be sent.
463 5
   * @param {string} request.projectId
464 5
   *   Deprecated. The Google Developers Console [project ID or project
465 5
   *   number](https://support.google.com/cloud/answer/6158840).
466 5
   *   This field has been deprecated and replaced by the name field.
467 5
   * @param {string} request.zone
468 5
   *   Deprecated. The name of the Google Compute Engine
469 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
470 5
   *   cluster resides. This field has been deprecated and replaced by the name
471 5
   *   field.
472 5
   * @param {string} request.clusterId
473 5
   *   Deprecated. The name of the cluster to retrieve.
474 5
   *   This field has been deprecated and replaced by the name field.
475 5
   * @param {string} request.name
476 5
   *   The name (project, location, cluster) of the cluster to retrieve.
477 5
   *   Specified in the format `projects/* /locations/* /clusters/*`.
478 5
   * @param {object} [options]
479 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
480 5
   * @returns {Promise} - The promise which resolves to an array.
481 5
   *   The first element of the array is an object representing [Cluster]{@link google.container.v1.Cluster}.
482 5
   *   Please see the
483 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
484 5
   *   for more details and examples.
485 5
   * @example
486 5
   * const [response] = await client.getCluster(request);
487 5
   */
488 5
  getCluster(
489 5
    request: protos.google.container.v1.IGetClusterRequest,
490 5
    optionsOrCallback?:
491 5
      | CallOptions
492 5
      | Callback<
493 5
          protos.google.container.v1.ICluster,
494 5
          protos.google.container.v1.IGetClusterRequest | null | undefined,
495 5
          {} | null | undefined
496 5
        >,
497 5
    callback?: Callback<
498 5
      protos.google.container.v1.ICluster,
499 5
      protos.google.container.v1.IGetClusterRequest | null | undefined,
500 5
      {} | null | undefined
501 5
    >
502 5
  ): Promise<
503 5
    [
504 5
      protos.google.container.v1.ICluster,
505 5
      protos.google.container.v1.IGetClusterRequest | undefined,
506 5
      {} | undefined
507 5
    ]
508 5
  > | void {
509 5
    request = request || {};
510 5
    let options: CallOptions;
511 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
512 5
      callback = optionsOrCallback;
513 5
      options = {};
514 5
    } else {
515 5
      options = optionsOrCallback as CallOptions;
516 5
    }
517 5
    options = options || {};
518 5
    options.otherArgs = options.otherArgs || {};
519 5
    options.otherArgs.headers = options.otherArgs.headers || {};
520 5
    options.otherArgs.headers[
521 5
      'x-goog-request-params'
522 5
    ] = gax.routingHeader.fromParams({
523 5
      name: request.name || '',
524 5
      project_id: request.projectId || '',
525 5
    });
526 5
    this.initialize();
527 5
    return this.innerApiCalls.getCluster(request, options, callback);
528 5
  }
529 5
  createCluster(
530 5
    request: protos.google.container.v1.ICreateClusterRequest,
531 5
    options?: CallOptions
532 5
  ): Promise<
533 5
    [
534 5
      protos.google.container.v1.IOperation,
535 5
      protos.google.container.v1.ICreateClusterRequest | undefined,
536 5
      {} | undefined
537 5
    ]
538 5
  >;
539 5
  createCluster(
540 5
    request: protos.google.container.v1.ICreateClusterRequest,
541 5
    options: CallOptions,
542 5
    callback: Callback<
543 5
      protos.google.container.v1.IOperation,
544 5
      protos.google.container.v1.ICreateClusterRequest | null | undefined,
545 5
      {} | null | undefined
546 5
    >
547 5
  ): void;
548 5
  createCluster(
549 5
    request: protos.google.container.v1.ICreateClusterRequest,
550 5
    callback: Callback<
551 5
      protos.google.container.v1.IOperation,
552 5
      protos.google.container.v1.ICreateClusterRequest | null | undefined,
553 5
      {} | null | undefined
554 5
    >
555 5
  ): void;
556 5
  /**
557 5
   * Creates a cluster, consisting of the specified number and type of Google
558 5
   * Compute Engine instances.
559 5
   *
560 5
   * By default, the cluster is created in the project's
561 5
   * [default
562 5
   * network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks).
563 5
   *
564 5
   * One firewall is added for the cluster. After cluster creation,
565 5
   * the Kubelet creates routes for each node to allow the containers
566 5
   * on that node to communicate with all other instances in the
567 5
   * cluster.
568 5
   *
569 5
   * Finally, an entry is added to the project's global metadata indicating
570 5
   * which CIDR range the cluster is using.
571 5
   *
572 5
   * @param {Object} request
573 5
   *   The request object that will be sent.
574 5
   * @param {string} request.projectId
575 5
   *   Deprecated. The Google Developers Console [project ID or project
576 5
   *   number](https://support.google.com/cloud/answer/6158840).
577 5
   *   This field has been deprecated and replaced by the parent field.
578 5
   * @param {string} request.zone
579 5
   *   Deprecated. The name of the Google Compute Engine
580 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
581 5
   *   cluster resides. This field has been deprecated and replaced by the parent
582 5
   *   field.
583 5
   * @param {google.container.v1.Cluster} request.cluster
584 5
   *   Required. A [cluster
585 5
   *   resource](https://cloud.google.com/container-engine/reference/rest/v1/projects.locations.clusters)
586 5
   * @param {string} request.parent
587 5
   *   The parent (project and location) where the cluster will be created.
588 5
   *   Specified in the format `projects/* /locations/*`.
589 5
   * @param {object} [options]
590 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
591 5
   * @returns {Promise} - The promise which resolves to an array.
592 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
593 5
   *   Please see the
594 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
595 5
   *   for more details and examples.
596 5
   * @example
597 5
   * const [response] = await client.createCluster(request);
598 5
   */
599 5
  createCluster(
600 5
    request: protos.google.container.v1.ICreateClusterRequest,
601 5
    optionsOrCallback?:
602 5
      | CallOptions
603 5
      | Callback<
604 5
          protos.google.container.v1.IOperation,
605 5
          protos.google.container.v1.ICreateClusterRequest | null | undefined,
606 5
          {} | null | undefined
607 5
        >,
608 5
    callback?: Callback<
609 5
      protos.google.container.v1.IOperation,
610 5
      protos.google.container.v1.ICreateClusterRequest | null | undefined,
611 5
      {} | null | undefined
612 5
    >
613 5
  ): Promise<
614 5
    [
615 5
      protos.google.container.v1.IOperation,
616 5
      protos.google.container.v1.ICreateClusterRequest | undefined,
617 5
      {} | undefined
618 5
    ]
619 5
  > | void {
620 5
    request = request || {};
621 5
    let options: CallOptions;
622 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
623 5
      callback = optionsOrCallback;
624 5
      options = {};
625 5
    } else {
626 5
      options = optionsOrCallback as CallOptions;
627 5
    }
628 5
    options = options || {};
629 5
    options.otherArgs = options.otherArgs || {};
630 5
    options.otherArgs.headers = options.otherArgs.headers || {};
631 5
    options.otherArgs.headers[
632 5
      'x-goog-request-params'
633 5
    ] = gax.routingHeader.fromParams({
634 5
      parent: request.parent || '',
635 5
      project_id: request.projectId || '',
636 5
    });
637 5
    this.initialize();
638 5
    return this.innerApiCalls.createCluster(request, options, callback);
639 5
  }
640 5
  updateCluster(
641 5
    request: protos.google.container.v1.IUpdateClusterRequest,
642 5
    options?: CallOptions
643 5
  ): Promise<
644 5
    [
645 5
      protos.google.container.v1.IOperation,
646 5
      protos.google.container.v1.IUpdateClusterRequest | undefined,
647 5
      {} | undefined
648 5
    ]
649 5
  >;
650 5
  updateCluster(
651 5
    request: protos.google.container.v1.IUpdateClusterRequest,
652 5
    options: CallOptions,
653 5
    callback: Callback<
654 5
      protos.google.container.v1.IOperation,
655 5
      protos.google.container.v1.IUpdateClusterRequest | null | undefined,
656 5
      {} | null | undefined
657 5
    >
658 5
  ): void;
659 5
  updateCluster(
660 5
    request: protos.google.container.v1.IUpdateClusterRequest,
661 5
    callback: Callback<
662 5
      protos.google.container.v1.IOperation,
663 5
      protos.google.container.v1.IUpdateClusterRequest | null | undefined,
664 5
      {} | null | undefined
665 5
    >
666 5
  ): void;
667 5
  /**
668 5
   * Updates the settings of a specific cluster.
669 5
   *
670 5
   * @param {Object} request
671 5
   *   The request object that will be sent.
672 5
   * @param {string} request.projectId
673 5
   *   Deprecated. The Google Developers Console [project ID or project
674 5
   *   number](https://support.google.com/cloud/answer/6158840).
675 5
   *   This field has been deprecated and replaced by the name field.
676 5
   * @param {string} request.zone
677 5
   *   Deprecated. The name of the Google Compute Engine
678 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
679 5
   *   cluster resides. This field has been deprecated and replaced by the name
680 5
   *   field.
681 5
   * @param {string} request.clusterId
682 5
   *   Deprecated. The name of the cluster to upgrade.
683 5
   *   This field has been deprecated and replaced by the name field.
684 5
   * @param {google.container.v1.ClusterUpdate} request.update
685 5
   *   Required. A description of the update.
686 5
   * @param {string} request.name
687 5
   *   The name (project, location, cluster) of the cluster to update.
688 5
   *   Specified in the format `projects/* /locations/* /clusters/*`.
689 5
   * @param {object} [options]
690 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
691 5
   * @returns {Promise} - The promise which resolves to an array.
692 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
693 5
   *   Please see the
694 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
695 5
   *   for more details and examples.
696 5
   * @example
697 5
   * const [response] = await client.updateCluster(request);
698 5
   */
699 5
  updateCluster(
700 5
    request: protos.google.container.v1.IUpdateClusterRequest,
701 5
    optionsOrCallback?:
702 5
      | CallOptions
703 5
      | Callback<
704 5
          protos.google.container.v1.IOperation,
705 5
          protos.google.container.v1.IUpdateClusterRequest | null | undefined,
706 5
          {} | null | undefined
707 5
        >,
708 5
    callback?: Callback<
709 5
      protos.google.container.v1.IOperation,
710 5
      protos.google.container.v1.IUpdateClusterRequest | null | undefined,
711 5
      {} | null | undefined
712 5
    >
713 5
  ): Promise<
714 5
    [
715 5
      protos.google.container.v1.IOperation,
716 5
      protos.google.container.v1.IUpdateClusterRequest | undefined,
717 5
      {} | undefined
718 5
    ]
719 5
  > | void {
720 5
    request = request || {};
721 5
    let options: CallOptions;
722 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
723 5
      callback = optionsOrCallback;
724 5
      options = {};
725 5
    } else {
726 5
      options = optionsOrCallback as CallOptions;
727 5
    }
728 5
    options = options || {};
729 5
    options.otherArgs = options.otherArgs || {};
730 5
    options.otherArgs.headers = options.otherArgs.headers || {};
731 5
    options.otherArgs.headers[
732 5
      'x-goog-request-params'
733 5
    ] = gax.routingHeader.fromParams({
734 5
      name: request.name || '',
735 5
      project_id: request.projectId || '',
736 5
    });
737 5
    this.initialize();
738 5
    return this.innerApiCalls.updateCluster(request, options, callback);
739 5
  }
740 5
  updateNodePool(
741 5
    request: protos.google.container.v1.IUpdateNodePoolRequest,
742 5
    options?: CallOptions
743 5
  ): Promise<
744 5
    [
745 5
      protos.google.container.v1.IOperation,
746 5
      protos.google.container.v1.IUpdateNodePoolRequest | undefined,
747 5
      {} | undefined
748 5
    ]
749 5
  >;
750 5
  updateNodePool(
751 5
    request: protos.google.container.v1.IUpdateNodePoolRequest,
752 5
    options: CallOptions,
753 5
    callback: Callback<
754 5
      protos.google.container.v1.IOperation,
755 5
      protos.google.container.v1.IUpdateNodePoolRequest | null | undefined,
756 5
      {} | null | undefined
757 5
    >
758 5
  ): void;
759 5
  updateNodePool(
760 5
    request: protos.google.container.v1.IUpdateNodePoolRequest,
761 5
    callback: Callback<
762 5
      protos.google.container.v1.IOperation,
763 5
      protos.google.container.v1.IUpdateNodePoolRequest | null | undefined,
764 5
      {} | null | undefined
765 5
    >
766 5
  ): void;
767 5
  /**
768 5
   * Updates the version and/or image type for the specified node pool.
769 5
   *
770 5
   * @param {Object} request
771 5
   *   The request object that will be sent.
772 5
   * @param {string} request.projectId
773 5
   *   Deprecated. The Google Developers Console [project ID or project
774 5
   *   number](https://support.google.com/cloud/answer/6158840).
775 5
   *   This field has been deprecated and replaced by the name field.
776 5
   * @param {string} request.zone
777 5
   *   Deprecated. The name of the Google Compute Engine
778 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
779 5
   *   cluster resides. This field has been deprecated and replaced by the name
780 5
   *   field.
781 5
   * @param {string} request.clusterId
782 5
   *   Deprecated. The name of the cluster to upgrade.
783 5
   *   This field has been deprecated and replaced by the name field.
784 5
   * @param {string} request.nodePoolId
785 5
   *   Deprecated. The name of the node pool to upgrade.
786 5
   *   This field has been deprecated and replaced by the name field.
787 5
   * @param {string} request.nodeVersion
788 5
   *   Required. The Kubernetes version to change the nodes to (typically an
789 5
   *   upgrade).
790 5
   *
791 5
   *   Users may specify either explicit versions offered by Kubernetes Engine or
792 5
   *   version aliases, which have the following behavior:
793 5
   *
794 5
   *   - "latest": picks the highest valid Kubernetes version
795 5
   *   - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
796 5
   *   - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
797 5
   *   - "1.X.Y-gke.N": picks an explicit Kubernetes version
798 5
   *   - "-": picks the Kubernetes master version
799 5
   * @param {string} request.imageType
800 5
   *   Required. The desired image type for the node pool.
801 5
   * @param {string} request.name
802 5
   *   The name (project, location, cluster, node pool) of the node pool to
803 5
   *   update. Specified in the format
804 5
   *   `projects/* /locations/* /clusters/* /nodePools/*`.
805 5
   * @param {string[]} request.locations
806 5
   *   The desired list of Google Compute Engine
807 5
   *   [zones](https://cloud.google.com/compute/docs/zones#available) in which the
808 5
   *   node pool's nodes should be located. Changing the locations for a node pool
809 5
   *   will result in nodes being either created or removed from the node pool,
810 5
   *   depending on whether locations are being added or removed.
811 5
   * @param {google.container.v1.WorkloadMetadataConfig} request.workloadMetadataConfig
812 5
   *   The desired workload metadata config for the node pool.
813 5
   * @param {google.container.v1.NodePool.UpgradeSettings} request.upgradeSettings
814 5
   *   Upgrade settings control disruption and speed of the upgrade.
815 5
   * @param {object} [options]
816 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
817 5
   * @returns {Promise} - The promise which resolves to an array.
818 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
819 5
   *   Please see the
820 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
821 5
   *   for more details and examples.
822 5
   * @example
823 5
   * const [response] = await client.updateNodePool(request);
824 5
   */
825 5
  updateNodePool(
826 5
    request: protos.google.container.v1.IUpdateNodePoolRequest,
827 5
    optionsOrCallback?:
828 5
      | CallOptions
829 5
      | Callback<
830 5
          protos.google.container.v1.IOperation,
831 5
          protos.google.container.v1.IUpdateNodePoolRequest | null | undefined,
832 5
          {} | null | undefined
833 5
        >,
834 5
    callback?: Callback<
835 5
      protos.google.container.v1.IOperation,
836 5
      protos.google.container.v1.IUpdateNodePoolRequest | null | undefined,
837 5
      {} | null | undefined
838 5
    >
839 5
  ): Promise<
840 5
    [
841 5
      protos.google.container.v1.IOperation,
842 5
      protos.google.container.v1.IUpdateNodePoolRequest | undefined,
843 5
      {} | undefined
844 5
    ]
845 5
  > | void {
846 5
    request = request || {};
847 5
    let options: CallOptions;
848 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
849 5
      callback = optionsOrCallback;
850 5
      options = {};
851 5
    } else {
852 5
      options = optionsOrCallback as CallOptions;
853 5
    }
854 5
    options = options || {};
855 5
    options.otherArgs = options.otherArgs || {};
856 5
    options.otherArgs.headers = options.otherArgs.headers || {};
857 5
    options.otherArgs.headers[
858 5
      'x-goog-request-params'
859 5
    ] = gax.routingHeader.fromParams({
860 5
      name: request.name || '',
861 5
      project_id: request.projectId || '',
862 5
    });
863 5
    this.initialize();
864 5
    return this.innerApiCalls.updateNodePool(request, options, callback);
865 5
  }
866 5
  setNodePoolAutoscaling(
867 5
    request: protos.google.container.v1.ISetNodePoolAutoscalingRequest,
868 5
    options?: CallOptions
869 5
  ): Promise<
870 5
    [
871 5
      protos.google.container.v1.IOperation,
872 5
      protos.google.container.v1.ISetNodePoolAutoscalingRequest | undefined,
873 5
      {} | undefined
874 5
    ]
875 5
  >;
876 5
  setNodePoolAutoscaling(
877 5
    request: protos.google.container.v1.ISetNodePoolAutoscalingRequest,
878 5
    options: CallOptions,
879 5
    callback: Callback<
880 5
      protos.google.container.v1.IOperation,
881 5
      | protos.google.container.v1.ISetNodePoolAutoscalingRequest
882 5
      | null
883 5
      | undefined,
884 5
      {} | null | undefined
885 5
    >
886 5
  ): void;
887 5
  setNodePoolAutoscaling(
888 5
    request: protos.google.container.v1.ISetNodePoolAutoscalingRequest,
889 5
    callback: Callback<
890 5
      protos.google.container.v1.IOperation,
891 5
      | protos.google.container.v1.ISetNodePoolAutoscalingRequest
892 5
      | null
893 5
      | undefined,
894 5
      {} | null | undefined
895 5
    >
896 5
  ): void;
897 5
  /**
898 5
   * Sets the autoscaling settings for the specified node pool.
899 5
   *
900 5
   * @param {Object} request
901 5
   *   The request object that will be sent.
902 5
   * @param {string} request.projectId
903 5
   *   Deprecated. The Google Developers Console [project ID or project
904 5
   *   number](https://support.google.com/cloud/answer/6158840).
905 5
   *   This field has been deprecated and replaced by the name field.
906 5
   * @param {string} request.zone
907 5
   *   Deprecated. The name of the Google Compute Engine
908 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
909 5
   *   cluster resides. This field has been deprecated and replaced by the name
910 5
   *   field.
911 5
   * @param {string} request.clusterId
912 5
   *   Deprecated. The name of the cluster to upgrade.
913 5
   *   This field has been deprecated and replaced by the name field.
914 5
   * @param {string} request.nodePoolId
915 5
   *   Deprecated. The name of the node pool to upgrade.
916 5
   *   This field has been deprecated and replaced by the name field.
917 5
   * @param {google.container.v1.NodePoolAutoscaling} request.autoscaling
918 5
   *   Required. Autoscaling configuration for the node pool.
919 5
   * @param {string} request.name
920 5
   *   The name (project, location, cluster, node pool) of the node pool to set
921 5
   *   autoscaler settings. Specified in the format
922 5
   *   `projects/* /locations/* /clusters/* /nodePools/*`.
923 5
   * @param {object} [options]
924 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
925 5
   * @returns {Promise} - The promise which resolves to an array.
926 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
927 5
   *   Please see the
928 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
929 5
   *   for more details and examples.
930 5
   * @example
931 5
   * const [response] = await client.setNodePoolAutoscaling(request);
932 5
   */
933 5
  setNodePoolAutoscaling(
934 5
    request: protos.google.container.v1.ISetNodePoolAutoscalingRequest,
935 5
    optionsOrCallback?:
936 5
      | CallOptions
937 5
      | Callback<
938 5
          protos.google.container.v1.IOperation,
939 5
          | protos.google.container.v1.ISetNodePoolAutoscalingRequest
940 5
          | null
941 5
          | undefined,
942 5
          {} | null | undefined
943 5
        >,
944 5
    callback?: Callback<
945 5
      protos.google.container.v1.IOperation,
946 5
      | protos.google.container.v1.ISetNodePoolAutoscalingRequest
947 5
      | null
948 5
      | undefined,
949 5
      {} | null | undefined
950 5
    >
951 5
  ): Promise<
952 5
    [
953 5
      protos.google.container.v1.IOperation,
954 5
      protos.google.container.v1.ISetNodePoolAutoscalingRequest | undefined,
955 5
      {} | undefined
956 5
    ]
957 5
  > | void {
958 5
    request = request || {};
959 5
    let options: CallOptions;
960 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
961 5
      callback = optionsOrCallback;
962 5
      options = {};
963 5
    } else {
964 5
      options = optionsOrCallback as CallOptions;
965 5
    }
966 5
    options = options || {};
967 5
    options.otherArgs = options.otherArgs || {};
968 5
    options.otherArgs.headers = options.otherArgs.headers || {};
969 5
    options.otherArgs.headers[
970 5
      'x-goog-request-params'
971 5
    ] = gax.routingHeader.fromParams({
972 5
      name: request.name || '',
973 5
      project_id: request.projectId || '',
974 5
    });
975 5
    this.initialize();
976 5
    return this.innerApiCalls.setNodePoolAutoscaling(
977 5
      request,
978 5
      options,
979 5
      callback
980 5
    );
981 5
  }
982 5
  setLoggingService(
983 5
    request: protos.google.container.v1.ISetLoggingServiceRequest,
984 5
    options?: CallOptions
985 5
  ): Promise<
986 5
    [
987 5
      protos.google.container.v1.IOperation,
988 5
      protos.google.container.v1.ISetLoggingServiceRequest | undefined,
989 5
      {} | undefined
990 5
    ]
991 5
  >;
992 5
  setLoggingService(
993 5
    request: protos.google.container.v1.ISetLoggingServiceRequest,
994 5
    options: CallOptions,
995 5
    callback: Callback<
996 5
      protos.google.container.v1.IOperation,
997 5
      protos.google.container.v1.ISetLoggingServiceRequest | null | undefined,
998 5
      {} | null | undefined
999 5
    >
1000 5
  ): void;
1001 5
  setLoggingService(
1002 5
    request: protos.google.container.v1.ISetLoggingServiceRequest,
1003 5
    callback: Callback<
1004 5
      protos.google.container.v1.IOperation,
1005 5
      protos.google.container.v1.ISetLoggingServiceRequest | null | undefined,
1006 5
      {} | null | undefined
1007 5
    >
1008 5
  ): void;
1009 5
  /**
1010 5
   * Sets the logging service for a specific cluster.
1011 5
   *
1012 5
   * @param {Object} request
1013 5
   *   The request object that will be sent.
1014 5
   * @param {string} request.projectId
1015 5
   *   Deprecated. The Google Developers Console [project ID or project
1016 5
   *   number](https://support.google.com/cloud/answer/6158840).
1017 5
   *   This field has been deprecated and replaced by the name field.
1018 5
   * @param {string} request.zone
1019 5
   *   Deprecated. The name of the Google Compute Engine
1020 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1021 5
   *   cluster resides. This field has been deprecated and replaced by the name
1022 5
   *   field.
1023 5
   * @param {string} request.clusterId
1024 5
   *   Deprecated. The name of the cluster to upgrade.
1025 5
   *   This field has been deprecated and replaced by the name field.
1026 5
   * @param {string} request.loggingService
1027 5
   *   Required. The logging service the cluster should use to write logs.
1028 5
   *   Currently available options:
1029 5
   *
1030 5
   *   * `logging.googleapis.com/kubernetes` - The Cloud Logging
1031 5
   *   service with a Kubernetes-native resource model
1032 5
   *   * `logging.googleapis.com` - The legacy Cloud Logging service (no longer
1033 5
   *     available as of GKE 1.15).
1034 5
   *   * `none` - no logs will be exported from the cluster.
1035 5
   *
1036 5
   *   If left as an empty string,`logging.googleapis.com/kubernetes` will be
1037 5
   *   used for GKE 1.14+ or `logging.googleapis.com` for earlier versions.
1038 5
   * @param {string} request.name
1039 5
   *   The name (project, location, cluster) of the cluster to set logging.
1040 5
   *   Specified in the format `projects/* /locations/* /clusters/*`.
1041 5
   * @param {object} [options]
1042 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1043 5
   * @returns {Promise} - The promise which resolves to an array.
1044 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
1045 5
   *   Please see the
1046 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1047 5
   *   for more details and examples.
1048 5
   * @example
1049 5
   * const [response] = await client.setLoggingService(request);
1050 5
   */
1051 5
  setLoggingService(
1052 5
    request: protos.google.container.v1.ISetLoggingServiceRequest,
1053 5
    optionsOrCallback?:
1054 5
      | CallOptions
1055 5
      | Callback<
1056 5
          protos.google.container.v1.IOperation,
1057 5
          | protos.google.container.v1.ISetLoggingServiceRequest
1058 5
          | null
1059 5
          | undefined,
1060 5
          {} | null | undefined
1061 5
        >,
1062 5
    callback?: Callback<
1063 5
      protos.google.container.v1.IOperation,
1064 5
      protos.google.container.v1.ISetLoggingServiceRequest | null | undefined,
1065 5
      {} | null | undefined
1066 5
    >
1067 5
  ): Promise<
1068 5
    [
1069 5
      protos.google.container.v1.IOperation,
1070 5
      protos.google.container.v1.ISetLoggingServiceRequest | undefined,
1071 5
      {} | undefined
1072 5
    ]
1073 5
  > | void {
1074 5
    request = request || {};
1075 5
    let options: CallOptions;
1076 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
1077 5
      callback = optionsOrCallback;
1078 5
      options = {};
1079 5
    } else {
1080 5
      options = optionsOrCallback as CallOptions;
1081 5
    }
1082 5
    options = options || {};
1083 5
    options.otherArgs = options.otherArgs || {};
1084 5
    options.otherArgs.headers = options.otherArgs.headers || {};
1085 5
    options.otherArgs.headers[
1086 5
      'x-goog-request-params'
1087 5
    ] = gax.routingHeader.fromParams({
1088 5
      name: request.name || '',
1089 5
      project_id: request.projectId || '',
1090 5
    });
1091 5
    this.initialize();
1092 5
    return this.innerApiCalls.setLoggingService(request, options, callback);
1093 5
  }
1094 5
  setMonitoringService(
1095 5
    request: protos.google.container.v1.ISetMonitoringServiceRequest,
1096 5
    options?: CallOptions
1097 5
  ): Promise<
1098 5
    [
1099 5
      protos.google.container.v1.IOperation,
1100 5
      protos.google.container.v1.ISetMonitoringServiceRequest | undefined,
1101 5
      {} | undefined
1102 5
    ]
1103 5
  >;
1104 5
  setMonitoringService(
1105 5
    request: protos.google.container.v1.ISetMonitoringServiceRequest,
1106 5
    options: CallOptions,
1107 5
    callback: Callback<
1108 5
      protos.google.container.v1.IOperation,
1109 5
      | protos.google.container.v1.ISetMonitoringServiceRequest
1110 5
      | null
1111 5
      | undefined,
1112 5
      {} | null | undefined
1113 5
    >
1114 5
  ): void;
1115 5
  setMonitoringService(
1116 5
    request: protos.google.container.v1.ISetMonitoringServiceRequest,
1117 5
    callback: Callback<
1118 5
      protos.google.container.v1.IOperation,
1119 5
      | protos.google.container.v1.ISetMonitoringServiceRequest
1120 5
      | null
1121 5
      | undefined,
1122 5
      {} | null | undefined
1123 5
    >
1124 5
  ): void;
1125 5
  /**
1126 5
   * Sets the monitoring service for a specific cluster.
1127 5
   *
1128 5
   * @param {Object} request
1129 5
   *   The request object that will be sent.
1130 5
   * @param {string} request.projectId
1131 5
   *   Deprecated. The Google Developers Console [project ID or project
1132 5
   *   number](https://support.google.com/cloud/answer/6158840).
1133 5
   *   This field has been deprecated and replaced by the name field.
1134 5
   * @param {string} request.zone
1135 5
   *   Deprecated. The name of the Google Compute Engine
1136 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1137 5
   *   cluster resides. This field has been deprecated and replaced by the name
1138 5
   *   field.
1139 5
   * @param {string} request.clusterId
1140 5
   *   Deprecated. The name of the cluster to upgrade.
1141 5
   *   This field has been deprecated and replaced by the name field.
1142 5
   * @param {string} request.monitoringService
1143 5
   *   Required. The monitoring service the cluster should use to write metrics.
1144 5
   *   Currently available options:
1145 5
   *
1146 5
   *   * "monitoring.googleapis.com/kubernetes" - The Cloud Monitoring
1147 5
   *   service with a Kubernetes-native resource model
1148 5
   *   * `monitoring.googleapis.com` - The legacy Cloud Monitoring service (no
1149 5
   *     longer available as of GKE 1.15).
1150 5
   *   * `none` - No metrics will be exported from the cluster.
1151 5
   *
1152 5
   *   If left as an empty string,`monitoring.googleapis.com/kubernetes` will be
1153 5
   *   used for GKE 1.14+ or `monitoring.googleapis.com` for earlier versions.
1154 5
   * @param {string} request.name
1155 5
   *   The name (project, location, cluster) of the cluster to set monitoring.
1156 5
   *   Specified in the format `projects/* /locations/* /clusters/*`.
1157 5
   * @param {object} [options]
1158 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1159 5
   * @returns {Promise} - The promise which resolves to an array.
1160 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
1161 5
   *   Please see the
1162 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1163 5
   *   for more details and examples.
1164 5
   * @example
1165 5
   * const [response] = await client.setMonitoringService(request);
1166 5
   */
1167 5
  setMonitoringService(
1168 5
    request: protos.google.container.v1.ISetMonitoringServiceRequest,
1169 5
    optionsOrCallback?:
1170 5
      | CallOptions
1171 5
      | Callback<
1172 5
          protos.google.container.v1.IOperation,
1173 5
          | protos.google.container.v1.ISetMonitoringServiceRequest
1174 5
          | null
1175 5
          | undefined,
1176 5
          {} | null | undefined
1177 5
        >,
1178 5
    callback?: Callback<
1179 5
      protos.google.container.v1.IOperation,
1180 5
      | protos.google.container.v1.ISetMonitoringServiceRequest
1181 5
      | null
1182 5
      | undefined,
1183 5
      {} | null | undefined
1184 5
    >
1185 5
  ): Promise<
1186 5
    [
1187 5
      protos.google.container.v1.IOperation,
1188 5
      protos.google.container.v1.ISetMonitoringServiceRequest | undefined,
1189 5
      {} | undefined
1190 5
    ]
1191 5
  > | void {
1192 5
    request = request || {};
1193 5
    let options: CallOptions;
1194 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
1195 5
      callback = optionsOrCallback;
1196 5
      options = {};
1197 5
    } else {
1198 5
      options = optionsOrCallback as CallOptions;
1199 5
    }
1200 5
    options = options || {};
1201 5
    options.otherArgs = options.otherArgs || {};
1202 5
    options.otherArgs.headers = options.otherArgs.headers || {};
1203 5
    options.otherArgs.headers[
1204 5
      'x-goog-request-params'
1205 5
    ] = gax.routingHeader.fromParams({
1206 5
      name: request.name || '',
1207 5
      project_id: request.projectId || '',
1208 5
    });
1209 5
    this.initialize();
1210 5
    return this.innerApiCalls.setMonitoringService(request, options, callback);
1211 5
  }
1212 5
  setAddonsConfig(
1213 5
    request: protos.google.container.v1.ISetAddonsConfigRequest,
1214 5
    options?: CallOptions
1215 5
  ): Promise<
1216 5
    [
1217 5
      protos.google.container.v1.IOperation,
1218 5
      protos.google.container.v1.ISetAddonsConfigRequest | undefined,
1219 5
      {} | undefined
1220 5
    ]
1221 5
  >;
1222 5
  setAddonsConfig(
1223 5
    request: protos.google.container.v1.ISetAddonsConfigRequest,
1224 5
    options: CallOptions,
1225 5
    callback: Callback<
1226 5
      protos.google.container.v1.IOperation,
1227 5
      protos.google.container.v1.ISetAddonsConfigRequest | null | undefined,
1228 5
      {} | null | undefined
1229 5
    >
1230 5
  ): void;
1231 5
  setAddonsConfig(
1232 5
    request: protos.google.container.v1.ISetAddonsConfigRequest,
1233 5
    callback: Callback<
1234 5
      protos.google.container.v1.IOperation,
1235 5
      protos.google.container.v1.ISetAddonsConfigRequest | null | undefined,
1236 5
      {} | null | undefined
1237 5
    >
1238 5
  ): void;
1239 5
  /**
1240 5
   * Sets the addons for a specific cluster.
1241 5
   *
1242 5
   * @param {Object} request
1243 5
   *   The request object that will be sent.
1244 5
   * @param {string} request.projectId
1245 5
   *   Deprecated. The Google Developers Console [project ID or project
1246 5
   *   number](https://support.google.com/cloud/answer/6158840).
1247 5
   *   This field has been deprecated and replaced by the name field.
1248 5
   * @param {string} request.zone
1249 5
   *   Deprecated. The name of the Google Compute Engine
1250 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1251 5
   *   cluster resides. This field has been deprecated and replaced by the name
1252 5
   *   field.
1253 5
   * @param {string} request.clusterId
1254 5
   *   Deprecated. The name of the cluster to upgrade.
1255 5
   *   This field has been deprecated and replaced by the name field.
1256 5
   * @param {google.container.v1.AddonsConfig} request.addonsConfig
1257 5
   *   Required. The desired configurations for the various addons available to run in the
1258 5
   *   cluster.
1259 5
   * @param {string} request.name
1260 5
   *   The name (project, location, cluster) of the cluster to set addons.
1261 5
   *   Specified in the format `projects/* /locations/* /clusters/*`.
1262 5
   * @param {object} [options]
1263 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1264 5
   * @returns {Promise} - The promise which resolves to an array.
1265 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
1266 5
   *   Please see the
1267 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1268 5
   *   for more details and examples.
1269 5
   * @example
1270 5
   * const [response] = await client.setAddonsConfig(request);
1271 5
   */
1272 5
  setAddonsConfig(
1273 5
    request: protos.google.container.v1.ISetAddonsConfigRequest,
1274 5
    optionsOrCallback?:
1275 5
      | CallOptions
1276 5
      | Callback<
1277 5
          protos.google.container.v1.IOperation,
1278 5
          protos.google.container.v1.ISetAddonsConfigRequest | null | undefined,
1279 5
          {} | null | undefined
1280 5
        >,
1281 5
    callback?: Callback<
1282 5
      protos.google.container.v1.IOperation,
1283 5
      protos.google.container.v1.ISetAddonsConfigRequest | null | undefined,
1284 5
      {} | null | undefined
1285 5
    >
1286 5
  ): Promise<
1287 5
    [
1288 5
      protos.google.container.v1.IOperation,
1289 5
      protos.google.container.v1.ISetAddonsConfigRequest | undefined,
1290 5
      {} | undefined
1291 5
    ]
1292 5
  > | void {
1293 5
    request = request || {};
1294 5
    let options: CallOptions;
1295 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
1296 5
      callback = optionsOrCallback;
1297 5
      options = {};
1298 5
    } else {
1299 5
      options = optionsOrCallback as CallOptions;
1300 5
    }
1301 5
    options = options || {};
1302 5
    options.otherArgs = options.otherArgs || {};
1303 5
    options.otherArgs.headers = options.otherArgs.headers || {};
1304 5
    options.otherArgs.headers[
1305 5
      'x-goog-request-params'
1306 5
    ] = gax.routingHeader.fromParams({
1307 5
      name: request.name || '',
1308 5
      project_id: request.projectId || '',
1309 5
    });
1310 5
    this.initialize();
1311 5
    return this.innerApiCalls.setAddonsConfig(request, options, callback);
1312 5
  }
1313 5
  setLocations(
1314 5
    request: protos.google.container.v1.ISetLocationsRequest,
1315 5
    options?: CallOptions
1316 5
  ): Promise<
1317 5
    [
1318 5
      protos.google.container.v1.IOperation,
1319 5
      protos.google.container.v1.ISetLocationsRequest | undefined,
1320 5
      {} | undefined
1321 5
    ]
1322 5
  >;
1323 5
  setLocations(
1324 5
    request: protos.google.container.v1.ISetLocationsRequest,
1325 5
    options: CallOptions,
1326 5
    callback: Callback<
1327 5
      protos.google.container.v1.IOperation,
1328 5
      protos.google.container.v1.ISetLocationsRequest | null | undefined,
1329 5
      {} | null | undefined
1330 5
    >
1331 5
  ): void;
1332 5
  setLocations(
1333 5
    request: protos.google.container.v1.ISetLocationsRequest,
1334 5
    callback: Callback<
1335 5
      protos.google.container.v1.IOperation,
1336 5
      protos.google.container.v1.ISetLocationsRequest | null | undefined,
1337 5
      {} | null | undefined
1338 5
    >
1339 5
  ): void;
1340 5
  /**
1341 5
   * Sets the locations for a specific cluster.
1342 5
   * Deprecated. Use
1343 5
   * [projects.locations.clusters.update](https://cloud.google.com/kubernetes-engine/docs/reference/rest/v1/projects.locations.clusters/update)
1344 5
   * instead.
1345 5
   *
1346 5
   * @param {Object} request
1347 5
   *   The request object that will be sent.
1348 5
   * @param {string} request.projectId
1349 5
   *   Deprecated. The Google Developers Console [project ID or project
1350 5
   *   number](https://support.google.com/cloud/answer/6158840).
1351 5
   *   This field has been deprecated and replaced by the name field.
1352 5
   * @param {string} request.zone
1353 5
   *   Deprecated. The name of the Google Compute Engine
1354 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1355 5
   *   cluster resides. This field has been deprecated and replaced by the name
1356 5
   *   field.
1357 5
   * @param {string} request.clusterId
1358 5
   *   Deprecated. The name of the cluster to upgrade.
1359 5
   *   This field has been deprecated and replaced by the name field.
1360 5
   * @param {string[]} request.locations
1361 5
   *   Required. The desired list of Google Compute Engine
1362 5
   *   [zones](https://cloud.google.com/compute/docs/zones#available) in which the
1363 5
   *   cluster's nodes should be located. Changing the locations a cluster is in
1364 5
   *   will result in nodes being either created or removed from the cluster,
1365 5
   *   depending on whether locations are being added or removed.
1366 5
   *
1367 5
   *   This list must always include the cluster's primary zone.
1368 5
   * @param {string} request.name
1369 5
   *   The name (project, location, cluster) of the cluster to set locations.
1370 5
   *   Specified in the format `projects/* /locations/* /clusters/*`.
1371 5
   * @param {object} [options]
1372 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1373 5
   * @returns {Promise} - The promise which resolves to an array.
1374 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
1375 5
   *   Please see the
1376 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1377 5
   *   for more details and examples.
1378 5
   * @example
1379 5
   * const [response] = await client.setLocations(request);
1380 5
   */
1381 5
  setLocations(
1382 5
    request: protos.google.container.v1.ISetLocationsRequest,
1383 5
    optionsOrCallback?:
1384 5
      | CallOptions
1385 5
      | Callback<
1386 5
          protos.google.container.v1.IOperation,
1387 5
          protos.google.container.v1.ISetLocationsRequest | null | undefined,
1388 5
          {} | null | undefined
1389 5
        >,
1390 5
    callback?: Callback<
1391 5
      protos.google.container.v1.IOperation,
1392 5
      protos.google.container.v1.ISetLocationsRequest | null | undefined,
1393 5
      {} | null | undefined
1394 5
    >
1395 5
  ): Promise<
1396 5
    [
1397 5
      protos.google.container.v1.IOperation,
1398 5
      protos.google.container.v1.ISetLocationsRequest | undefined,
1399 5
      {} | undefined
1400 5
    ]
1401 5
  > | void {
1402 5
    request = request || {};
1403 5
    let options: CallOptions;
1404 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
1405 5
      callback = optionsOrCallback;
1406 5
      options = {};
1407 5
    } else {
1408 5
      options = optionsOrCallback as CallOptions;
1409 5
    }
1410 5
    options = options || {};
1411 5
    options.otherArgs = options.otherArgs || {};
1412 5
    options.otherArgs.headers = options.otherArgs.headers || {};
1413 5
    options.otherArgs.headers[
1414 5
      'x-goog-request-params'
1415 5
    ] = gax.routingHeader.fromParams({
1416 5
      name: request.name || '',
1417 5
      project_id: request.projectId || '',
1418 5
    });
1419 5
    this.initialize();
1420 5
    return this.innerApiCalls.setLocations(request, options, callback);
1421 5
  }
1422 5
  updateMaster(
1423 5
    request: protos.google.container.v1.IUpdateMasterRequest,
1424 5
    options?: CallOptions
1425 5
  ): Promise<
1426 5
    [
1427 5
      protos.google.container.v1.IOperation,
1428 5
      protos.google.container.v1.IUpdateMasterRequest | undefined,
1429 5
      {} | undefined
1430 5
    ]
1431 5
  >;
1432 5
  updateMaster(
1433 5
    request: protos.google.container.v1.IUpdateMasterRequest,
1434 5
    options: CallOptions,
1435 5
    callback: Callback<
1436 5
      protos.google.container.v1.IOperation,
1437 5
      protos.google.container.v1.IUpdateMasterRequest | null | undefined,
1438 5
      {} | null | undefined
1439 5
    >
1440 5
  ): void;
1441 5
  updateMaster(
1442 5
    request: protos.google.container.v1.IUpdateMasterRequest,
1443 5
    callback: Callback<
1444 5
      protos.google.container.v1.IOperation,
1445 5
      protos.google.container.v1.IUpdateMasterRequest | null | undefined,
1446 5
      {} | null | undefined
1447 5
    >
1448 5
  ): void;
1449 5
  /**
1450 5
   * Updates the master for a specific cluster.
1451 5
   *
1452 5
   * @param {Object} request
1453 5
   *   The request object that will be sent.
1454 5
   * @param {string} request.projectId
1455 5
   *   Deprecated. The Google Developers Console [project ID or project
1456 5
   *   number](https://support.google.com/cloud/answer/6158840).
1457 5
   *   This field has been deprecated and replaced by the name field.
1458 5
   * @param {string} request.zone
1459 5
   *   Deprecated. The name of the Google Compute Engine
1460 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1461 5
   *   cluster resides. This field has been deprecated and replaced by the name
1462 5
   *   field.
1463 5
   * @param {string} request.clusterId
1464 5
   *   Deprecated. The name of the cluster to upgrade.
1465 5
   *   This field has been deprecated and replaced by the name field.
1466 5
   * @param {string} request.masterVersion
1467 5
   *   Required. The Kubernetes version to change the master to.
1468 5
   *
1469 5
   *   Users may specify either explicit versions offered by Kubernetes Engine or
1470 5
   *   version aliases, which have the following behavior:
1471 5
   *
1472 5
   *   - "latest": picks the highest valid Kubernetes version
1473 5
   *   - "1.X": picks the highest valid patch+gke.N patch in the 1.X version
1474 5
   *   - "1.X.Y": picks the highest valid gke.N patch in the 1.X.Y version
1475 5
   *   - "1.X.Y-gke.N": picks an explicit Kubernetes version
1476 5
   *   - "-": picks the default Kubernetes version
1477 5
   * @param {string} request.name
1478 5
   *   The name (project, location, cluster) of the cluster to update.
1479 5
   *   Specified in the format `projects/* /locations/* /clusters/*`.
1480 5
   * @param {object} [options]
1481 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1482 5
   * @returns {Promise} - The promise which resolves to an array.
1483 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
1484 5
   *   Please see the
1485 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1486 5
   *   for more details and examples.
1487 5
   * @example
1488 5
   * const [response] = await client.updateMaster(request);
1489 5
   */
1490 5
  updateMaster(
1491 5
    request: protos.google.container.v1.IUpdateMasterRequest,
1492 5
    optionsOrCallback?:
1493 5
      | CallOptions
1494 5
      | Callback<
1495 5
          protos.google.container.v1.IOperation,
1496 5
          protos.google.container.v1.IUpdateMasterRequest | null | undefined,
1497 5
          {} | null | undefined
1498 5
        >,
1499 5
    callback?: Callback<
1500 5
      protos.google.container.v1.IOperation,
1501 5
      protos.google.container.v1.IUpdateMasterRequest | null | undefined,
1502 5
      {} | null | undefined
1503 5
    >
1504 5
  ): Promise<
1505 5
    [
1506 5
      protos.google.container.v1.IOperation,
1507 5
      protos.google.container.v1.IUpdateMasterRequest | undefined,
1508 5
      {} | undefined
1509 5
    ]
1510 5
  > | void {
1511 5
    request = request || {};
1512 5
    let options: CallOptions;
1513 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
1514 5
      callback = optionsOrCallback;
1515 5
      options = {};
1516 5
    } else {
1517 5
      options = optionsOrCallback as CallOptions;
1518 5
    }
1519 5
    options = options || {};
1520 5
    options.otherArgs = options.otherArgs || {};
1521 5
    options.otherArgs.headers = options.otherArgs.headers || {};
1522 5
    options.otherArgs.headers[
1523 5
      'x-goog-request-params'
1524 5
    ] = gax.routingHeader.fromParams({
1525 5
      name: request.name || '',
1526 5
      project_id: request.projectId || '',
1527 5
    });
1528 5
    this.initialize();
1529 5
    return this.innerApiCalls.updateMaster(request, options, callback);
1530 5
  }
1531 5
  setMasterAuth(
1532 5
    request: protos.google.container.v1.ISetMasterAuthRequest,
1533 5
    options?: CallOptions
1534 5
  ): Promise<
1535 5
    [
1536 5
      protos.google.container.v1.IOperation,
1537 5
      protos.google.container.v1.ISetMasterAuthRequest | undefined,
1538 5
      {} | undefined
1539 5
    ]
1540 5
  >;
1541 5
  setMasterAuth(
1542 5
    request: protos.google.container.v1.ISetMasterAuthRequest,
1543 5
    options: CallOptions,
1544 5
    callback: Callback<
1545 5
      protos.google.container.v1.IOperation,
1546 5
      protos.google.container.v1.ISetMasterAuthRequest | null | undefined,
1547 5
      {} | null | undefined
1548 5
    >
1549 5
  ): void;
1550 5
  setMasterAuth(
1551 5
    request: protos.google.container.v1.ISetMasterAuthRequest,
1552 5
    callback: Callback<
1553 5
      protos.google.container.v1.IOperation,
1554 5
      protos.google.container.v1.ISetMasterAuthRequest | null | undefined,
1555 5
      {} | null | undefined
1556 5
    >
1557 5
  ): void;
1558 5
  /**
1559 5
   * Sets master auth materials. Currently supports changing the admin password
1560 5
   * or a specific cluster, either via password generation or explicitly setting
1561 5
   * the password.
1562 5
   *
1563 5
   * @param {Object} request
1564 5
   *   The request object that will be sent.
1565 5
   * @param {string} request.projectId
1566 5
   *   Deprecated. The Google Developers Console [project ID or project
1567 5
   *   number](https://support.google.com/cloud/answer/6158840).
1568 5
   *   This field has been deprecated and replaced by the name field.
1569 5
   * @param {string} request.zone
1570 5
   *   Deprecated. The name of the Google Compute Engine
1571 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1572 5
   *   cluster resides. This field has been deprecated and replaced by the name
1573 5
   *   field.
1574 5
   * @param {string} request.clusterId
1575 5
   *   Deprecated. The name of the cluster to upgrade.
1576 5
   *   This field has been deprecated and replaced by the name field.
1577 5
   * @param {google.container.v1.SetMasterAuthRequest.Action} request.action
1578 5
   *   Required. The exact form of action to be taken on the master auth.
1579 5
   * @param {google.container.v1.MasterAuth} request.update
1580 5
   *   Required. A description of the update.
1581 5
   * @param {string} request.name
1582 5
   *   The name (project, location, cluster) of the cluster to set auth.
1583 5
   *   Specified in the format `projects/* /locations/* /clusters/*`.
1584 5
   * @param {object} [options]
1585 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1586 5
   * @returns {Promise} - The promise which resolves to an array.
1587 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
1588 5
   *   Please see the
1589 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1590 5
   *   for more details and examples.
1591 5
   * @example
1592 5
   * const [response] = await client.setMasterAuth(request);
1593 5
   */
1594 5
  setMasterAuth(
1595 5
    request: protos.google.container.v1.ISetMasterAuthRequest,
1596 5
    optionsOrCallback?:
1597 5
      | CallOptions
1598 5
      | Callback<
1599 5
          protos.google.container.v1.IOperation,
1600 5
          protos.google.container.v1.ISetMasterAuthRequest | null | undefined,
1601 5
          {} | null | undefined
1602 5
        >,
1603 5
    callback?: Callback<
1604 5
      protos.google.container.v1.IOperation,
1605 5
      protos.google.container.v1.ISetMasterAuthRequest | null | undefined,
1606 5
      {} | null | undefined
1607 5
    >
1608 5
  ): Promise<
1609 5
    [
1610 5
      protos.google.container.v1.IOperation,
1611 5
      protos.google.container.v1.ISetMasterAuthRequest | undefined,
1612 5
      {} | undefined
1613 5
    ]
1614 5
  > | void {
1615 5
    request = request || {};
1616 5
    let options: CallOptions;
1617 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
1618 5
      callback = optionsOrCallback;
1619 5
      options = {};
1620 5
    } else {
1621 5
      options = optionsOrCallback as CallOptions;
1622 5
    }
1623 5
    options = options || {};
1624 5
    options.otherArgs = options.otherArgs || {};
1625 5
    options.otherArgs.headers = options.otherArgs.headers || {};
1626 5
    options.otherArgs.headers[
1627 5
      'x-goog-request-params'
1628 5
    ] = gax.routingHeader.fromParams({
1629 5
      name: request.name || '',
1630 5
      project_id: request.projectId || '',
1631 5
    });
1632 5
    this.initialize();
1633 5
    return this.innerApiCalls.setMasterAuth(request, options, callback);
1634 5
  }
1635 5
  deleteCluster(
1636 5
    request: protos.google.container.v1.IDeleteClusterRequest,
1637 5
    options?: CallOptions
1638 5
  ): Promise<
1639 5
    [
1640 5
      protos.google.container.v1.IOperation,
1641 5
      protos.google.container.v1.IDeleteClusterRequest | undefined,
1642 5
      {} | undefined
1643 5
    ]
1644 5
  >;
1645 5
  deleteCluster(
1646 5
    request: protos.google.container.v1.IDeleteClusterRequest,
1647 5
    options: CallOptions,
1648 5
    callback: Callback<
1649 5
      protos.google.container.v1.IOperation,
1650 5
      protos.google.container.v1.IDeleteClusterRequest | null | undefined,
1651 5
      {} | null | undefined
1652 5
    >
1653 5
  ): void;
1654 5
  deleteCluster(
1655 5
    request: protos.google.container.v1.IDeleteClusterRequest,
1656 5
    callback: Callback<
1657 5
      protos.google.container.v1.IOperation,
1658 5
      protos.google.container.v1.IDeleteClusterRequest | null | undefined,
1659 5
      {} | null | undefined
1660 5
    >
1661 5
  ): void;
1662 5
  /**
1663 5
   * Deletes the cluster, including the Kubernetes endpoint and all worker
1664 5
   * nodes.
1665 5
   *
1666 5
   * Firewalls and routes that were configured during cluster creation
1667 5
   * are also deleted.
1668 5
   *
1669 5
   * Other Google Compute Engine resources that might be in use by the cluster,
1670 5
   * such as load balancer resources, are not deleted if they weren't present
1671 5
   * when the cluster was initially created.
1672 5
   *
1673 5
   * @param {Object} request
1674 5
   *   The request object that will be sent.
1675 5
   * @param {string} request.projectId
1676 5
   *   Deprecated. The Google Developers Console [project ID or project
1677 5
   *   number](https://support.google.com/cloud/answer/6158840).
1678 5
   *   This field has been deprecated and replaced by the name field.
1679 5
   * @param {string} request.zone
1680 5
   *   Deprecated. The name of the Google Compute Engine
1681 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1682 5
   *   cluster resides. This field has been deprecated and replaced by the name
1683 5
   *   field.
1684 5
   * @param {string} request.clusterId
1685 5
   *   Deprecated. The name of the cluster to delete.
1686 5
   *   This field has been deprecated and replaced by the name field.
1687 5
   * @param {string} request.name
1688 5
   *   The name (project, location, cluster) of the cluster to delete.
1689 5
   *   Specified in the format `projects/* /locations/* /clusters/*`.
1690 5
   * @param {object} [options]
1691 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1692 5
   * @returns {Promise} - The promise which resolves to an array.
1693 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
1694 5
   *   Please see the
1695 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1696 5
   *   for more details and examples.
1697 5
   * @example
1698 5
   * const [response] = await client.deleteCluster(request);
1699 5
   */
1700 5
  deleteCluster(
1701 5
    request: protos.google.container.v1.IDeleteClusterRequest,
1702 5
    optionsOrCallback?:
1703 5
      | CallOptions
1704 5
      | Callback<
1705 5
          protos.google.container.v1.IOperation,
1706 5
          protos.google.container.v1.IDeleteClusterRequest | null | undefined,
1707 5
          {} | null | undefined
1708 5
        >,
1709 5
    callback?: Callback<
1710 5
      protos.google.container.v1.IOperation,
1711 5
      protos.google.container.v1.IDeleteClusterRequest | null | undefined,
1712 5
      {} | null | undefined
1713 5
    >
1714 5
  ): Promise<
1715 5
    [
1716 5
      protos.google.container.v1.IOperation,
1717 5
      protos.google.container.v1.IDeleteClusterRequest | undefined,
1718 5
      {} | undefined
1719 5
    ]
1720 5
  > | void {
1721 5
    request = request || {};
1722 5
    let options: CallOptions;
1723 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
1724 5
      callback = optionsOrCallback;
1725 5
      options = {};
1726 5
    } else {
1727 5
      options = optionsOrCallback as CallOptions;
1728 5
    }
1729 5
    options = options || {};
1730 5
    options.otherArgs = options.otherArgs || {};
1731 5
    options.otherArgs.headers = options.otherArgs.headers || {};
1732 5
    options.otherArgs.headers[
1733 5
      'x-goog-request-params'
1734 5
    ] = gax.routingHeader.fromParams({
1735 5
      name: request.name || '',
1736 5
      project_id: request.projectId || '',
1737 5
    });
1738 5
    this.initialize();
1739 5
    return this.innerApiCalls.deleteCluster(request, options, callback);
1740 5
  }
1741 5
  listOperations(
1742 5
    request: protos.google.container.v1.IListOperationsRequest,
1743 5
    options?: CallOptions
1744 5
  ): Promise<
1745 5
    [
1746 5
      protos.google.container.v1.IListOperationsResponse,
1747 5
      protos.google.container.v1.IListOperationsRequest | undefined,
1748 5
      {} | undefined
1749 5
    ]
1750 5
  >;
1751 5
  listOperations(
1752 5
    request: protos.google.container.v1.IListOperationsRequest,
1753 5
    options: CallOptions,
1754 5
    callback: Callback<
1755 5
      protos.google.container.v1.IListOperationsResponse,
1756 5
      protos.google.container.v1.IListOperationsRequest | null | undefined,
1757 5
      {} | null | undefined
1758 5
    >
1759 5
  ): void;
1760 5
  listOperations(
1761 5
    request: protos.google.container.v1.IListOperationsRequest,
1762 5
    callback: Callback<
1763 5
      protos.google.container.v1.IListOperationsResponse,
1764 5
      protos.google.container.v1.IListOperationsRequest | null | undefined,
1765 5
      {} | null | undefined
1766 5
    >
1767 5
  ): void;
1768 5
  /**
1769 5
   * Lists all operations in a project in a specific zone or all zones.
1770 5
   *
1771 5
   * @param {Object} request
1772 5
   *   The request object that will be sent.
1773 5
   * @param {string} request.projectId
1774 5
   *   Deprecated. The Google Developers Console [project ID or project
1775 5
   *   number](https://support.google.com/cloud/answer/6158840).
1776 5
   *   This field has been deprecated and replaced by the parent field.
1777 5
   * @param {string} request.zone
1778 5
   *   Deprecated. The name of the Google Compute Engine
1779 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) to return
1780 5
   *   operations for, or `-` for all zones. This field has been deprecated and
1781 5
   *   replaced by the parent field.
1782 5
   * @param {string} request.parent
1783 5
   *   The parent (project and location) where the operations will be listed.
1784 5
   *   Specified in the format `projects/* /locations/*`.
1785 5
   *   Location "-" matches all zones and all regions.
1786 5
   * @param {object} [options]
1787 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1788 5
   * @returns {Promise} - The promise which resolves to an array.
1789 5
   *   The first element of the array is an object representing [ListOperationsResponse]{@link google.container.v1.ListOperationsResponse}.
1790 5
   *   Please see the
1791 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1792 5
   *   for more details and examples.
1793 5
   * @example
1794 5
   * const [response] = await client.listOperations(request);
1795 5
   */
1796 5
  listOperations(
1797 5
    request: protos.google.container.v1.IListOperationsRequest,
1798 5
    optionsOrCallback?:
1799 5
      | CallOptions
1800 5
      | Callback<
1801 5
          protos.google.container.v1.IListOperationsResponse,
1802 5
          protos.google.container.v1.IListOperationsRequest | null | undefined,
1803 5
          {} | null | undefined
1804 5
        >,
1805 5
    callback?: Callback<
1806 5
      protos.google.container.v1.IListOperationsResponse,
1807 5
      protos.google.container.v1.IListOperationsRequest | null | undefined,
1808 5
      {} | null | undefined
1809 5
    >
1810 5
  ): Promise<
1811 5
    [
1812 5
      protos.google.container.v1.IListOperationsResponse,
1813 5
      protos.google.container.v1.IListOperationsRequest | undefined,
1814 5
      {} | undefined
1815 5
    ]
1816 5
  > | void {
1817 5
    request = request || {};
1818 5
    let options: CallOptions;
1819 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
1820 5
      callback = optionsOrCallback;
1821 5
      options = {};
1822 5
    } else {
1823 5
      options = optionsOrCallback as CallOptions;
1824 5
    }
1825 5
    options = options || {};
1826 5
    options.otherArgs = options.otherArgs || {};
1827 5
    options.otherArgs.headers = options.otherArgs.headers || {};
1828 5
    options.otherArgs.headers[
1829 5
      'x-goog-request-params'
1830 5
    ] = gax.routingHeader.fromParams({
1831 5
      parent: request.parent || '',
1832 5
      project_id: request.projectId || '',
1833 5
    });
1834 5
    this.initialize();
1835 5
    return this.innerApiCalls.listOperations(request, options, callback);
1836 5
  }
1837 5
  getOperation(
1838 5
    request: protos.google.container.v1.IGetOperationRequest,
1839 5
    options?: CallOptions
1840 5
  ): Promise<
1841 5
    [
1842 5
      protos.google.container.v1.IOperation,
1843 5
      protos.google.container.v1.IGetOperationRequest | undefined,
1844 5
      {} | undefined
1845 5
    ]
1846 5
  >;
1847 5
  getOperation(
1848 5
    request: protos.google.container.v1.IGetOperationRequest,
1849 5
    options: CallOptions,
1850 5
    callback: Callback<
1851 5
      protos.google.container.v1.IOperation,
1852 5
      protos.google.container.v1.IGetOperationRequest | null | undefined,
1853 5
      {} | null | undefined
1854 5
    >
1855 5
  ): void;
1856 5
  getOperation(
1857 5
    request: protos.google.container.v1.IGetOperationRequest,
1858 5
    callback: Callback<
1859 5
      protos.google.container.v1.IOperation,
1860 5
      protos.google.container.v1.IGetOperationRequest | null | undefined,
1861 5
      {} | null | undefined
1862 5
    >
1863 5
  ): void;
1864 5
  /**
1865 5
   * Gets the specified operation.
1866 5
   *
1867 5
   * @param {Object} request
1868 5
   *   The request object that will be sent.
1869 5
   * @param {string} request.projectId
1870 5
   *   Deprecated. The Google Developers Console [project ID or project
1871 5
   *   number](https://support.google.com/cloud/answer/6158840).
1872 5
   *   This field has been deprecated and replaced by the name field.
1873 5
   * @param {string} request.zone
1874 5
   *   Deprecated. The name of the Google Compute Engine
1875 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1876 5
   *   cluster resides. This field has been deprecated and replaced by the name
1877 5
   *   field.
1878 5
   * @param {string} request.operationId
1879 5
   *   Deprecated. The server-assigned `name` of the operation.
1880 5
   *   This field has been deprecated and replaced by the name field.
1881 5
   * @param {string} request.name
1882 5
   *   The name (project, location, operation id) of the operation to get.
1883 5
   *   Specified in the format `projects/* /locations/* /operations/*`.
1884 5
   * @param {object} [options]
1885 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1886 5
   * @returns {Promise} - The promise which resolves to an array.
1887 5
   *   The first element of the array is an object representing [Operation]{@link google.container.v1.Operation}.
1888 5
   *   Please see the
1889 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1890 5
   *   for more details and examples.
1891 5
   * @example
1892 5
   * const [response] = await client.getOperation(request);
1893 5
   */
1894 5
  getOperation(
1895 5
    request: protos.google.container.v1.IGetOperationRequest,
1896 5
    optionsOrCallback?:
1897 5
      | CallOptions
1898 5
      | Callback<
1899 5
          protos.google.container.v1.IOperation,
1900 5
          protos.google.container.v1.IGetOperationRequest | null | undefined,
1901 5
          {} | null | undefined
1902 5
        >,
1903 5
    callback?: Callback<
1904 5
      protos.google.container.v1.IOperation,
1905 5
      protos.google.container.v1.IGetOperationRequest | null | undefined,
1906 5
      {} | null | undefined
1907 5
    >
1908 5
  ): Promise<
1909 5
    [
1910 5
      protos.google.container.v1.IOperation,
1911 5
      protos.google.container.v1.IGetOperationRequest | undefined,
1912 5
      {} | undefined
1913 5
    ]
1914 5
  > | void {
1915 5
    request = request || {};
1916 5
    let options: CallOptions;
1917 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
1918 5
      callback = optionsOrCallback;
1919 5
      options = {};
1920 5
    } else {
1921 5
      options = optionsOrCallback as CallOptions;
1922 5
    }
1923 5
    options = options || {};
1924 5
    options.otherArgs = options.otherArgs || {};
1925 5
    options.otherArgs.headers = options.otherArgs.headers || {};
1926 5
    options.otherArgs.headers[
1927 5
      'x-goog-request-params'
1928 5
    ] = gax.routingHeader.fromParams({
1929 5
      name: request.name || '',
1930 5
      project_id: request.projectId || '',
1931 5
    });
1932 5
    this.initialize();
1933 5
    return this.innerApiCalls.getOperation(request, options, callback);
1934 5
  }
1935 5
  cancelOperation(
1936 5
    request: protos.google.container.v1.ICancelOperationRequest,
1937 5
    options?: CallOptions
1938 5
  ): Promise<
1939 5
    [
1940 5
      protos.google.protobuf.IEmpty,
1941 5
      protos.google.container.v1.ICancelOperationRequest | undefined,
1942 5
      {} | undefined
1943 5
    ]
1944 5
  >;
1945 5
  cancelOperation(
1946 5
    request: protos.google.container.v1.ICancelOperationRequest,
1947 5
    options: CallOptions,
1948 5
    callback: Callback<
1949 5
      protos.google.protobuf.IEmpty,
1950 5
      protos.google.container.v1.ICancelOperationRequest | null | undefined,
1951 5
      {} | null | undefined
1952 5
    >
1953 5
  ): void;
1954 5
  cancelOperation(
1955 5
    request: protos.google.container.v1.ICancelOperationRequest,
1956 5
    callback: Callback<
1957 5
      protos.google.protobuf.IEmpty,
1958 5
      protos.google.container.v1.ICancelOperationRequest | null | undefined,
1959 5
      {} | null | undefined
1960 5
    >
1961 5
  ): void;
1962 5
  /**
1963 5
   * Cancels the specified operation.
1964 5
   *
1965 5
   * @param {Object} request
1966 5
   *   The request object that will be sent.
1967 5
   * @param {string} request.projectId
1968 5
   *   Deprecated. The Google Developers Console [project ID or project
1969 5
   *   number](https://support.google.com/cloud/answer/6158840).
1970 5
   *   This field has been deprecated and replaced by the name field.
1971 5
   * @param {string} request.zone
1972 5
   *   Deprecated. The name of the Google Compute Engine
1973 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) in which the
1974 5
   *   operation resides. This field has been deprecated and replaced by the name
1975 5
   *   field.
1976 5
   * @param {string} request.operationId
1977 5
   *   Deprecated. The server-assigned `name` of the operation.
1978 5
   *   This field has been deprecated and replaced by the name field.
1979 5
   * @param {string} request.name
1980 5
   *   The name (project, location, operation id) of the operation to cancel.
1981 5
   *   Specified in the format `projects/* /locations/* /operations/*`.
1982 5
   * @param {object} [options]
1983 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
1984 5
   * @returns {Promise} - The promise which resolves to an array.
1985 5
   *   The first element of the array is an object representing [Empty]{@link google.protobuf.Empty}.
1986 5
   *   Please see the
1987 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
1988 5
   *   for more details and examples.
1989 5
   * @example
1990 5
   * const [response] = await client.cancelOperation(request);
1991 5
   */
1992 5
  cancelOperation(
1993 5
    request: protos.google.container.v1.ICancelOperationRequest,
1994 5
    optionsOrCallback?:
1995 5
      | CallOptions
1996 5
      | Callback<
1997 5
          protos.google.protobuf.IEmpty,
1998 5
          protos.google.container.v1.ICancelOperationRequest | null | undefined,
1999 5
          {} | null | undefined
2000 5
        >,
2001 5
    callback?: Callback<
2002 5
      protos.google.protobuf.IEmpty,
2003 5
      protos.google.container.v1.ICancelOperationRequest | null | undefined,
2004 5
      {} | null | undefined
2005 5
    >
2006 5
  ): Promise<
2007 5
    [
2008 5
      protos.google.protobuf.IEmpty,
2009 5
      protos.google.container.v1.ICancelOperationRequest | undefined,
2010 5
      {} | undefined
2011 5
    ]
2012 5
  > | void {
2013 5
    request = request || {};
2014 5
    let options: CallOptions;
2015 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
2016 5
      callback = optionsOrCallback;
2017 5
      options = {};
2018 5
    } else {
2019 5
      options = optionsOrCallback as CallOptions;
2020 5
    }
2021 5
    options = options || {};
2022 5
    options.otherArgs = options.otherArgs || {};
2023 5
    options.otherArgs.headers = options.otherArgs.headers || {};
2024 5
    options.otherArgs.headers[
2025 5
      'x-goog-request-params'
2026 5
    ] = gax.routingHeader.fromParams({
2027 5
      name: request.name || '',
2028 5
      project_id: request.projectId || '',
2029 5
    });
2030 5
    this.initialize();
2031 5
    return this.innerApiCalls.cancelOperation(request, options, callback);
2032 5
  }
2033 5
  getServerConfig(
2034 5
    request: protos.google.container.v1.IGetServerConfigRequest,
2035 5
    options?: CallOptions
2036 5
  ): Promise<
2037 5
    [
2038 5
      protos.google.container.v1.IServerConfig,
2039 5
      protos.google.container.v1.IGetServerConfigRequest | undefined,
2040 5
      {} | undefined
2041 5
    ]
2042 5
  >;
2043 5
  getServerConfig(
2044 5
    request: protos.google.container.v1.IGetServerConfigRequest,
2045 5
    options: CallOptions,
2046 5
    callback: Callback<
2047 5
      protos.google.container.v1.IServerConfig,
2048 5
      protos.google.container.v1.IGetServerConfigRequest | null | undefined,
2049 5
      {} | null | undefined
2050 5
    >
2051 5
  ): void;
2052 5
  getServerConfig(
2053 5
    request: protos.google.container.v1.IGetServerConfigRequest,
2054 5
    callback: Callback<
2055 5
      protos.google.container.v1.IServerConfig,
2056 5
      protos.google.container.v1.IGetServerConfigRequest | null | undefined,
2057 5
      {} | null | undefined
2058 5
    >
2059 5
  ): void;
2060 5
  /**
2061 5
   * Returns configuration info about the Google Kubernetes Engine service.
2062 5
   *
2063 5
   * @param {Object} request
2064 5
   *   The request object that will be sent.
2065 5
   * @param {string} request.projectId
2066 5
   *   Deprecated. The Google Developers Console [project ID or project
2067 5
   *   number](https://support.google.com/cloud/answer/6158840).
2068 5
   *   This field has been deprecated and replaced by the name field.
2069 5
   * @param {string} request.zone
2070 5
   *   Deprecated. The name of the Google Compute Engine
2071 5
   *   [zone](https://cloud.google.com/compute/docs/zones#available) to return
2072 5
   *   operations for. This field has been deprecated and replaced by the name
2073 5
   *   field.
2074 5
   * @param {string} request.name
2075 5
   *   The name (project and location) of the server config to get,
2076 5
   *   specified in the format `projects/* /locations/*`.
2077 5
   * @param {object} [options]
2078 5
   *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
2079 5
   * @returns {Promise} - The promise which resolves to an array.
2080 5
   *   The first element of the array is an object representing [ServerConfig]{@link google.container.v1.ServerConfig}.
2081 5
   *   Please see the
2082 5
   *   [documentation](https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods)
2083 5
   *   for more details and examples.
2084 5
   * @example
2085 5
   * const [response] = await client.getServerConfig(request);
2086 5
   */
2087 5
  getServerConfig(
2088 5
    request: protos.google.container.v1.IGetServerConfigRequest,
2089 5
    optionsOrCallback?:
2090 5
      | CallOptions
2091 5
      | Callback<
2092 5
          protos.google.container.v1.IServerConfig,
2093 5
          protos.google.container.v1.IGetServerConfigRequest | null | undefined,
2094 5
          {} | null | undefined
2095 5
        >,
2096 5
    callback?: Callback<
2097 5
      protos.google.container.v1.IServerConfig,
2098 5
      protos.google.container.v1.IGetServerConfigRequest | null | undefined,
2099 5
      {} | null | undefined
2100 5
    >
2101 5
  ): Promise<
2102 5
    [
2103 5
      protos.google.container.v1.IServerConfig,
2104 5
      protos.google.container.v1.IGetServerConfigRequest | undefined,
2105 5
      {} | undefined
2106 5
    ]
2107 5
  > | void {
2108 5
    request = request || {};
2109 5
    let options: CallOptions;
2110 5
    if (typeof optionsOrCallback === 'function' && callback === undefined) {
2111 5
      callback = optionsOrCallback;
2112 5
      options = {};
2113 5
    } else {
2114 5
      options = optionsOrCallback as CallOptions;
2115 5
    }
2116 5
    options = options || {};
2117 5
    options.otherArgs = options.otherArgs || {};
2118 5
    options.otherArgs.headers = options.otherArgs.headers || {};
2119 5
    options.otherArgs.headers[
2120 5
      'x-goog-request-params'
2121 5
    ] = gax.routingHeader.fromParams({
2122 5
      name: request.name || '',
2123 5
      project_id: request.projectId || '',
2124 5
    });
2125 5
    this.initialize();
2126 5
    return this.innerApiCalls.getServerConfig(request, options, callback);
2127 5
  }
2128 5
  getJSONWebKeys(
2129 5
    request: protos.google.container.v1.IGetJSONWebKeysRequest,
2130 5
    options?: CallOptions
2131 5
  ): Promise<
2132 5
    [
2133 5
      protos.google.container.v1.IGetJSONWebKeysResponse,
2134 5
      protos.google.container.v1.IGetJSONWebKeysRequest | undefined,
2135 5
      {} | undefined
2136 5
    ]
2137 5
  >;
2138 5
  getJSONWebKeys(
2139 5
    request: protos.google.container.v1.IGetJSONWebKeysRequest,
2140 5
    options: CallOptions,
2141