1<?php
2/*
3 * Copyright 2014 Google Inc.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
6 * use this file except in compliance with the License. You may obtain a copy of
7 * the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14 * License for the specific language governing permissions and limitations under
15 * the License.
16 */
17
18namespace Google\Service;
19
20use Google\Client;
21
22/**
23 * Service definition for Compute (v1).
24 *
25 * <p>
26 * Creates and runs virtual machines on Google Cloud Platform.</p>
27 *
28 * <p>
29 * For more information about this service, see the API
30 * <a href="https://cloud.google.com/compute/" target="_blank">Documentation</a>
31 * </p>
32 *
33 * @author Google, Inc.
34 */
35class Compute extends \Google\Service
36{
37  /** See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.. */
38  const CLOUD_PLATFORM =
39      "https://www.googleapis.com/auth/cloud-platform";
40  /** View and manage your Google Compute Engine resources. */
41  const COMPUTE =
42      "https://www.googleapis.com/auth/compute";
43  /** View your Google Compute Engine resources. */
44  const COMPUTE_READONLY =
45      "https://www.googleapis.com/auth/compute.readonly";
46  /** Manage your data and permissions in Cloud Storage and see the email address for your Google Account. */
47  const DEVSTORAGE_FULL_CONTROL =
48      "https://www.googleapis.com/auth/devstorage.full_control";
49  /** View your data in Google Cloud Storage. */
50  const DEVSTORAGE_READ_ONLY =
51      "https://www.googleapis.com/auth/devstorage.read_only";
52  /** Manage your data in Cloud Storage and see the email address of your Google Account. */
53  const DEVSTORAGE_READ_WRITE =
54      "https://www.googleapis.com/auth/devstorage.read_write";
55
56  public $acceleratorTypes;
57  public $addresses;
58  public $autoscalers;
59  public $backendBuckets;
60  public $backendServices;
61  public $diskTypes;
62  public $disks;
63  public $externalVpnGateways;
64  public $firewallPolicies;
65  public $firewalls;
66  public $forwardingRules;
67  public $globalAddresses;
68  public $globalForwardingRules;
69  public $globalNetworkEndpointGroups;
70  public $globalOperations;
71  public $globalOrganizationOperations;
72  public $globalPublicDelegatedPrefixes;
73  public $healthChecks;
74  public $httpHealthChecks;
75  public $httpsHealthChecks;
76  public $imageFamilyViews;
77  public $images;
78  public $instanceGroupManagers;
79  public $instanceGroups;
80  public $instanceTemplates;
81  public $instances;
82  public $interconnectAttachments;
83  public $interconnectLocations;
84  public $interconnects;
85  public $licenseCodes;
86  public $licenses;
87  public $machineImages;
88  public $machineTypes;
89  public $networkEdgeSecurityServices;
90  public $networkEndpointGroups;
91  public $networkFirewallPolicies;
92  public $networks;
93  public $nodeGroups;
94  public $nodeTemplates;
95  public $nodeTypes;
96  public $packetMirrorings;
97  public $projects;
98  public $publicAdvertisedPrefixes;
99  public $publicDelegatedPrefixes;
100  public $regionAutoscalers;
101  public $regionBackendServices;
102  public $regionCommitments;
103  public $regionDiskTypes;
104  public $regionDisks;
105  public $regionHealthCheckServices;
106  public $regionHealthChecks;
107  public $regionInstanceGroupManagers;
108  public $regionInstanceGroups;
109  public $regionInstances;
110  public $regionNetworkEndpointGroups;
111  public $regionNetworkFirewallPolicies;
112  public $regionNotificationEndpoints;
113  public $regionOperations;
114  public $regionSecurityPolicies;
115  public $regionSslCertificates;
116  public $regionTargetHttpProxies;
117  public $regionTargetHttpsProxies;
118  public $regionUrlMaps;
119  public $regions;
120  public $reservations;
121  public $resourcePolicies;
122  public $routers;
123  public $routes;
124  public $securityPolicies;
125  public $serviceAttachments;
126  public $snapshots;
127  public $sslCertificates;
128  public $sslPolicies;
129  public $subnetworks;
130  public $targetGrpcProxies;
131  public $targetHttpProxies;
132  public $targetHttpsProxies;
133  public $targetInstances;
134  public $targetPools;
135  public $targetSslProxies;
136  public $targetTcpProxies;
137  public $targetVpnGateways;
138  public $urlMaps;
139  public $vpnGateways;
140  public $vpnTunnels;
141  public $zoneOperations;
142  public $zones;
143
144  /**
145   * Constructs the internal representation of the Compute service.
146   *
147   * @param Client|array $clientOrConfig The client used to deliver requests, or a
148   *                                     config array to pass to a new Client instance.
149   * @param string $rootUrl The root URL used for requests to the service.
150   */
151  public function __construct($clientOrConfig = [], $rootUrl = null)
152  {
153    parent::__construct($clientOrConfig);
154    $this->rootUrl = $rootUrl ?: 'https://compute.googleapis.com/';
155    $this->servicePath = 'compute/v1/';
156    $this->batchPath = 'batch/compute/v1';
157    $this->version = 'v1';
158    $this->serviceName = 'compute';
159
160    $this->acceleratorTypes = new Compute\Resource\AcceleratorTypes(
161        $this,
162        $this->serviceName,
163        'acceleratorTypes',
164        [
165          'methods' => [
166            'aggregatedList' => [
167              'path' => 'projects/{project}/aggregated/acceleratorTypes',
168              'httpMethod' => 'GET',
169              'parameters' => [
170                'project' => [
171                  'location' => 'path',
172                  'type' => 'string',
173                  'required' => true,
174                ],
175                'filter' => [
176                  'location' => 'query',
177                  'type' => 'string',
178                ],
179                'includeAllScopes' => [
180                  'location' => 'query',
181                  'type' => 'boolean',
182                ],
183                'maxResults' => [
184                  'location' => 'query',
185                  'type' => 'integer',
186                ],
187                'orderBy' => [
188                  'location' => 'query',
189                  'type' => 'string',
190                ],
191                'pageToken' => [
192                  'location' => 'query',
193                  'type' => 'string',
194                ],
195                'returnPartialSuccess' => [
196                  'location' => 'query',
197                  'type' => 'boolean',
198                ],
199              ],
200            ],'get' => [
201              'path' => 'projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}',
202              'httpMethod' => 'GET',
203              'parameters' => [
204                'project' => [
205                  'location' => 'path',
206                  'type' => 'string',
207                  'required' => true,
208                ],
209                'zone' => [
210                  'location' => 'path',
211                  'type' => 'string',
212                  'required' => true,
213                ],
214                'acceleratorType' => [
215                  'location' => 'path',
216                  'type' => 'string',
217                  'required' => true,
218                ],
219              ],
220            ],'list' => [
221              'path' => 'projects/{project}/zones/{zone}/acceleratorTypes',
222              'httpMethod' => 'GET',
223              'parameters' => [
224                'project' => [
225                  'location' => 'path',
226                  'type' => 'string',
227                  'required' => true,
228                ],
229                'zone' => [
230                  'location' => 'path',
231                  'type' => 'string',
232                  'required' => true,
233                ],
234                'filter' => [
235                  'location' => 'query',
236                  'type' => 'string',
237                ],
238                'maxResults' => [
239                  'location' => 'query',
240                  'type' => 'integer',
241                ],
242                'orderBy' => [
243                  'location' => 'query',
244                  'type' => 'string',
245                ],
246                'pageToken' => [
247                  'location' => 'query',
248                  'type' => 'string',
249                ],
250                'returnPartialSuccess' => [
251                  'location' => 'query',
252                  'type' => 'boolean',
253                ],
254              ],
255            ],
256          ]
257        ]
258    );
259    $this->addresses = new Compute\Resource\Addresses(
260        $this,
261        $this->serviceName,
262        'addresses',
263        [
264          'methods' => [
265            'aggregatedList' => [
266              'path' => 'projects/{project}/aggregated/addresses',
267              'httpMethod' => 'GET',
268              'parameters' => [
269                'project' => [
270                  'location' => 'path',
271                  'type' => 'string',
272                  'required' => true,
273                ],
274                'filter' => [
275                  'location' => 'query',
276                  'type' => 'string',
277                ],
278                'includeAllScopes' => [
279                  'location' => 'query',
280                  'type' => 'boolean',
281                ],
282                'maxResults' => [
283                  'location' => 'query',
284                  'type' => 'integer',
285                ],
286                'orderBy' => [
287                  'location' => 'query',
288                  'type' => 'string',
289                ],
290                'pageToken' => [
291                  'location' => 'query',
292                  'type' => 'string',
293                ],
294                'returnPartialSuccess' => [
295                  'location' => 'query',
296                  'type' => 'boolean',
297                ],
298              ],
299            ],'delete' => [
300              'path' => 'projects/{project}/regions/{region}/addresses/{address}',
301              'httpMethod' => 'DELETE',
302              'parameters' => [
303                'project' => [
304                  'location' => 'path',
305                  'type' => 'string',
306                  'required' => true,
307                ],
308                'region' => [
309                  'location' => 'path',
310                  'type' => 'string',
311                  'required' => true,
312                ],
313                'address' => [
314                  'location' => 'path',
315                  'type' => 'string',
316                  'required' => true,
317                ],
318                'requestId' => [
319                  'location' => 'query',
320                  'type' => 'string',
321                ],
322              ],
323            ],'get' => [
324              'path' => 'projects/{project}/regions/{region}/addresses/{address}',
325              'httpMethod' => 'GET',
326              'parameters' => [
327                'project' => [
328                  'location' => 'path',
329                  'type' => 'string',
330                  'required' => true,
331                ],
332                'region' => [
333                  'location' => 'path',
334                  'type' => 'string',
335                  'required' => true,
336                ],
337                'address' => [
338                  'location' => 'path',
339                  'type' => 'string',
340                  'required' => true,
341                ],
342              ],
343            ],'insert' => [
344              'path' => 'projects/{project}/regions/{region}/addresses',
345              'httpMethod' => 'POST',
346              'parameters' => [
347                'project' => [
348                  'location' => 'path',
349                  'type' => 'string',
350                  'required' => true,
351                ],
352                'region' => [
353                  'location' => 'path',
354                  'type' => 'string',
355                  'required' => true,
356                ],
357                'requestId' => [
358                  'location' => 'query',
359                  'type' => 'string',
360                ],
361              ],
362            ],'list' => [
363              'path' => 'projects/{project}/regions/{region}/addresses',
364              'httpMethod' => 'GET',
365              'parameters' => [
366                'project' => [
367                  'location' => 'path',
368                  'type' => 'string',
369                  'required' => true,
370                ],
371                'region' => [
372                  'location' => 'path',
373                  'type' => 'string',
374                  'required' => true,
375                ],
376                'filter' => [
377                  'location' => 'query',
378                  'type' => 'string',
379                ],
380                'maxResults' => [
381                  'location' => 'query',
382                  'type' => 'integer',
383                ],
384                'orderBy' => [
385                  'location' => 'query',
386                  'type' => 'string',
387                ],
388                'pageToken' => [
389                  'location' => 'query',
390                  'type' => 'string',
391                ],
392                'returnPartialSuccess' => [
393                  'location' => 'query',
394                  'type' => 'boolean',
395                ],
396              ],
397            ],
398          ]
399        ]
400    );
401    $this->autoscalers = new Compute\Resource\Autoscalers(
402        $this,
403        $this->serviceName,
404        'autoscalers',
405        [
406          'methods' => [
407            'aggregatedList' => [
408              'path' => 'projects/{project}/aggregated/autoscalers',
409              'httpMethod' => 'GET',
410              'parameters' => [
411                'project' => [
412                  'location' => 'path',
413                  'type' => 'string',
414                  'required' => true,
415                ],
416                'filter' => [
417                  'location' => 'query',
418                  'type' => 'string',
419                ],
420                'includeAllScopes' => [
421                  'location' => 'query',
422                  'type' => 'boolean',
423                ],
424                'maxResults' => [
425                  'location' => 'query',
426                  'type' => 'integer',
427                ],
428                'orderBy' => [
429                  'location' => 'query',
430                  'type' => 'string',
431                ],
432                'pageToken' => [
433                  'location' => 'query',
434                  'type' => 'string',
435                ],
436                'returnPartialSuccess' => [
437                  'location' => 'query',
438                  'type' => 'boolean',
439                ],
440              ],
441            ],'delete' => [
442              'path' => 'projects/{project}/zones/{zone}/autoscalers/{autoscaler}',
443              'httpMethod' => 'DELETE',
444              'parameters' => [
445                'project' => [
446                  'location' => 'path',
447                  'type' => 'string',
448                  'required' => true,
449                ],
450                'zone' => [
451                  'location' => 'path',
452                  'type' => 'string',
453                  'required' => true,
454                ],
455                'autoscaler' => [
456                  'location' => 'path',
457                  'type' => 'string',
458                  'required' => true,
459                ],
460                'requestId' => [
461                  'location' => 'query',
462                  'type' => 'string',
463                ],
464              ],
465            ],'get' => [
466              'path' => 'projects/{project}/zones/{zone}/autoscalers/{autoscaler}',
467              'httpMethod' => 'GET',
468              'parameters' => [
469                'project' => [
470                  'location' => 'path',
471                  'type' => 'string',
472                  'required' => true,
473                ],
474                'zone' => [
475                  'location' => 'path',
476                  'type' => 'string',
477                  'required' => true,
478                ],
479                'autoscaler' => [
480                  'location' => 'path',
481                  'type' => 'string',
482                  'required' => true,
483                ],
484              ],
485            ],'insert' => [
486              'path' => 'projects/{project}/zones/{zone}/autoscalers',
487              'httpMethod' => 'POST',
488              'parameters' => [
489                'project' => [
490                  'location' => 'path',
491                  'type' => 'string',
492                  'required' => true,
493                ],
494                'zone' => [
495                  'location' => 'path',
496                  'type' => 'string',
497                  'required' => true,
498                ],
499                'requestId' => [
500                  'location' => 'query',
501                  'type' => 'string',
502                ],
503              ],
504            ],'list' => [
505              'path' => 'projects/{project}/zones/{zone}/autoscalers',
506              'httpMethod' => 'GET',
507              'parameters' => [
508                'project' => [
509                  'location' => 'path',
510                  'type' => 'string',
511                  'required' => true,
512                ],
513                'zone' => [
514                  'location' => 'path',
515                  'type' => 'string',
516                  'required' => true,
517                ],
518                'filter' => [
519                  'location' => 'query',
520                  'type' => 'string',
521                ],
522                'maxResults' => [
523                  'location' => 'query',
524                  'type' => 'integer',
525                ],
526                'orderBy' => [
527                  'location' => 'query',
528                  'type' => 'string',
529                ],
530                'pageToken' => [
531                  'location' => 'query',
532                  'type' => 'string',
533                ],
534                'returnPartialSuccess' => [
535                  'location' => 'query',
536                  'type' => 'boolean',
537                ],
538              ],
539            ],'patch' => [
540              'path' => 'projects/{project}/zones/{zone}/autoscalers',
541              'httpMethod' => 'PATCH',
542              'parameters' => [
543                'project' => [
544                  'location' => 'path',
545                  'type' => 'string',
546                  'required' => true,
547                ],
548                'zone' => [
549                  'location' => 'path',
550                  'type' => 'string',
551                  'required' => true,
552                ],
553                'autoscaler' => [
554                  'location' => 'query',
555                  'type' => 'string',
556                ],
557                'requestId' => [
558                  'location' => 'query',
559                  'type' => 'string',
560                ],
561              ],
562            ],'update' => [
563              'path' => 'projects/{project}/zones/{zone}/autoscalers',
564              'httpMethod' => 'PUT',
565              'parameters' => [
566                'project' => [
567                  'location' => 'path',
568                  'type' => 'string',
569                  'required' => true,
570                ],
571                'zone' => [
572                  'location' => 'path',
573                  'type' => 'string',
574                  'required' => true,
575                ],
576                'autoscaler' => [
577                  'location' => 'query',
578                  'type' => 'string',
579                ],
580                'requestId' => [
581                  'location' => 'query',
582                  'type' => 'string',
583                ],
584              ],
585            ],
586          ]
587        ]
588    );
589    $this->backendBuckets = new Compute\Resource\BackendBuckets(
590        $this,
591        $this->serviceName,
592        'backendBuckets',
593        [
594          'methods' => [
595            'addSignedUrlKey' => [
596              'path' => 'projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey',
597              'httpMethod' => 'POST',
598              'parameters' => [
599                'project' => [
600                  'location' => 'path',
601                  'type' => 'string',
602                  'required' => true,
603                ],
604                'backendBucket' => [
605                  'location' => 'path',
606                  'type' => 'string',
607                  'required' => true,
608                ],
609                'requestId' => [
610                  'location' => 'query',
611                  'type' => 'string',
612                ],
613              ],
614            ],'delete' => [
615              'path' => 'projects/{project}/global/backendBuckets/{backendBucket}',
616              'httpMethod' => 'DELETE',
617              'parameters' => [
618                'project' => [
619                  'location' => 'path',
620                  'type' => 'string',
621                  'required' => true,
622                ],
623                'backendBucket' => [
624                  'location' => 'path',
625                  'type' => 'string',
626                  'required' => true,
627                ],
628                'requestId' => [
629                  'location' => 'query',
630                  'type' => 'string',
631                ],
632              ],
633            ],'deleteSignedUrlKey' => [
634              'path' => 'projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey',
635              'httpMethod' => 'POST',
636              'parameters' => [
637                'project' => [
638                  'location' => 'path',
639                  'type' => 'string',
640                  'required' => true,
641                ],
642                'backendBucket' => [
643                  'location' => 'path',
644                  'type' => 'string',
645                  'required' => true,
646                ],
647                'keyName' => [
648                  'location' => 'query',
649                  'type' => 'string',
650                  'required' => true,
651                ],
652                'requestId' => [
653                  'location' => 'query',
654                  'type' => 'string',
655                ],
656              ],
657            ],'get' => [
658              'path' => 'projects/{project}/global/backendBuckets/{backendBucket}',
659              'httpMethod' => 'GET',
660              'parameters' => [
661                'project' => [
662                  'location' => 'path',
663                  'type' => 'string',
664                  'required' => true,
665                ],
666                'backendBucket' => [
667                  'location' => 'path',
668                  'type' => 'string',
669                  'required' => true,
670                ],
671              ],
672            ],'insert' => [
673              'path' => 'projects/{project}/global/backendBuckets',
674              'httpMethod' => 'POST',
675              'parameters' => [
676                'project' => [
677                  'location' => 'path',
678                  'type' => 'string',
679                  'required' => true,
680                ],
681                'requestId' => [
682                  'location' => 'query',
683                  'type' => 'string',
684                ],
685              ],
686            ],'list' => [
687              'path' => 'projects/{project}/global/backendBuckets',
688              'httpMethod' => 'GET',
689              'parameters' => [
690                'project' => [
691                  'location' => 'path',
692                  'type' => 'string',
693                  'required' => true,
694                ],
695                'filter' => [
696                  'location' => 'query',
697                  'type' => 'string',
698                ],
699                'maxResults' => [
700                  'location' => 'query',
701                  'type' => 'integer',
702                ],
703                'orderBy' => [
704                  'location' => 'query',
705                  'type' => 'string',
706                ],
707                'pageToken' => [
708                  'location' => 'query',
709                  'type' => 'string',
710                ],
711                'returnPartialSuccess' => [
712                  'location' => 'query',
713                  'type' => 'boolean',
714                ],
715              ],
716            ],'patch' => [
717              'path' => 'projects/{project}/global/backendBuckets/{backendBucket}',
718              'httpMethod' => 'PATCH',
719              'parameters' => [
720                'project' => [
721                  'location' => 'path',
722                  'type' => 'string',
723                  'required' => true,
724                ],
725                'backendBucket' => [
726                  'location' => 'path',
727                  'type' => 'string',
728                  'required' => true,
729                ],
730                'requestId' => [
731                  'location' => 'query',
732                  'type' => 'string',
733                ],
734              ],
735            ],'setEdgeSecurityPolicy' => [
736              'path' => 'projects/{project}/global/backendBuckets/{backendBucket}/setEdgeSecurityPolicy',
737              'httpMethod' => 'POST',
738              'parameters' => [
739                'project' => [
740                  'location' => 'path',
741                  'type' => 'string',
742                  'required' => true,
743                ],
744                'backendBucket' => [
745                  'location' => 'path',
746                  'type' => 'string',
747                  'required' => true,
748                ],
749                'requestId' => [
750                  'location' => 'query',
751                  'type' => 'string',
752                ],
753              ],
754            ],'update' => [
755              'path' => 'projects/{project}/global/backendBuckets/{backendBucket}',
756              'httpMethod' => 'PUT',
757              'parameters' => [
758                'project' => [
759                  'location' => 'path',
760                  'type' => 'string',
761                  'required' => true,
762                ],
763                'backendBucket' => [
764                  'location' => 'path',
765                  'type' => 'string',
766                  'required' => true,
767                ],
768                'requestId' => [
769                  'location' => 'query',
770                  'type' => 'string',
771                ],
772              ],
773            ],
774          ]
775        ]
776    );
777    $this->backendServices = new Compute\Resource\BackendServices(
778        $this,
779        $this->serviceName,
780        'backendServices',
781        [
782          'methods' => [
783            'addSignedUrlKey' => [
784              'path' => 'projects/{project}/global/backendServices/{backendService}/addSignedUrlKey',
785              'httpMethod' => 'POST',
786              'parameters' => [
787                'project' => [
788                  'location' => 'path',
789                  'type' => 'string',
790                  'required' => true,
791                ],
792                'backendService' => [
793                  'location' => 'path',
794                  'type' => 'string',
795                  'required' => true,
796                ],
797                'requestId' => [
798                  'location' => 'query',
799                  'type' => 'string',
800                ],
801              ],
802            ],'aggregatedList' => [
803              'path' => 'projects/{project}/aggregated/backendServices',
804              'httpMethod' => 'GET',
805              'parameters' => [
806                'project' => [
807                  'location' => 'path',
808                  'type' => 'string',
809                  'required' => true,
810                ],
811                'filter' => [
812                  'location' => 'query',
813                  'type' => 'string',
814                ],
815                'includeAllScopes' => [
816                  'location' => 'query',
817                  'type' => 'boolean',
818                ],
819                'maxResults' => [
820                  'location' => 'query',
821                  'type' => 'integer',
822                ],
823                'orderBy' => [
824                  'location' => 'query',
825                  'type' => 'string',
826                ],
827                'pageToken' => [
828                  'location' => 'query',
829                  'type' => 'string',
830                ],
831                'returnPartialSuccess' => [
832                  'location' => 'query',
833                  'type' => 'boolean',
834                ],
835              ],
836            ],'delete' => [
837              'path' => 'projects/{project}/global/backendServices/{backendService}',
838              'httpMethod' => 'DELETE',
839              'parameters' => [
840                'project' => [
841                  'location' => 'path',
842                  'type' => 'string',
843                  'required' => true,
844                ],
845                'backendService' => [
846                  'location' => 'path',
847                  'type' => 'string',
848                  'required' => true,
849                ],
850                'requestId' => [
851                  'location' => 'query',
852                  'type' => 'string',
853                ],
854              ],
855            ],'deleteSignedUrlKey' => [
856              'path' => 'projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey',
857              'httpMethod' => 'POST',
858              'parameters' => [
859                'project' => [
860                  'location' => 'path',
861                  'type' => 'string',
862                  'required' => true,
863                ],
864                'backendService' => [
865                  'location' => 'path',
866                  'type' => 'string',
867                  'required' => true,
868                ],
869                'keyName' => [
870                  'location' => 'query',
871                  'type' => 'string',
872                  'required' => true,
873                ],
874                'requestId' => [
875                  'location' => 'query',
876                  'type' => 'string',
877                ],
878              ],
879            ],'get' => [
880              'path' => 'projects/{project}/global/backendServices/{backendService}',
881              'httpMethod' => 'GET',
882              'parameters' => [
883                'project' => [
884                  'location' => 'path',
885                  'type' => 'string',
886                  'required' => true,
887                ],
888                'backendService' => [
889                  'location' => 'path',
890                  'type' => 'string',
891                  'required' => true,
892                ],
893              ],
894            ],'getHealth' => [
895              'path' => 'projects/{project}/global/backendServices/{backendService}/getHealth',
896              'httpMethod' => 'POST',
897              'parameters' => [
898                'project' => [
899                  'location' => 'path',
900                  'type' => 'string',
901                  'required' => true,
902                ],
903                'backendService' => [
904                  'location' => 'path',
905                  'type' => 'string',
906                  'required' => true,
907                ],
908              ],
909            ],'insert' => [
910              'path' => 'projects/{project}/global/backendServices',
911              'httpMethod' => 'POST',
912              'parameters' => [
913                'project' => [
914                  'location' => 'path',
915                  'type' => 'string',
916                  'required' => true,
917                ],
918                'requestId' => [
919                  'location' => 'query',
920                  'type' => 'string',
921                ],
922              ],
923            ],'list' => [
924              'path' => 'projects/{project}/global/backendServices',
925              'httpMethod' => 'GET',
926              'parameters' => [
927                'project' => [
928                  'location' => 'path',
929                  'type' => 'string',
930                  'required' => true,
931                ],
932                'filter' => [
933                  'location' => 'query',
934                  'type' => 'string',
935                ],
936                'maxResults' => [
937                  'location' => 'query',
938                  'type' => 'integer',
939                ],
940                'orderBy' => [
941                  'location' => 'query',
942                  'type' => 'string',
943                ],
944                'pageToken' => [
945                  'location' => 'query',
946                  'type' => 'string',
947                ],
948                'returnPartialSuccess' => [
949                  'location' => 'query',
950                  'type' => 'boolean',
951                ],
952              ],
953            ],'patch' => [
954              'path' => 'projects/{project}/global/backendServices/{backendService}',
955              'httpMethod' => 'PATCH',
956              'parameters' => [
957                'project' => [
958                  'location' => 'path',
959                  'type' => 'string',
960                  'required' => true,
961                ],
962                'backendService' => [
963                  'location' => 'path',
964                  'type' => 'string',
965                  'required' => true,
966                ],
967                'requestId' => [
968                  'location' => 'query',
969                  'type' => 'string',
970                ],
971              ],
972            ],'setEdgeSecurityPolicy' => [
973              'path' => 'projects/{project}/global/backendServices/{backendService}/setEdgeSecurityPolicy',
974              'httpMethod' => 'POST',
975              'parameters' => [
976                'project' => [
977                  'location' => 'path',
978                  'type' => 'string',
979                  'required' => true,
980                ],
981                'backendService' => [
982                  'location' => 'path',
983                  'type' => 'string',
984                  'required' => true,
985                ],
986                'requestId' => [
987                  'location' => 'query',
988                  'type' => 'string',
989                ],
990              ],
991            ],'setSecurityPolicy' => [
992              'path' => 'projects/{project}/global/backendServices/{backendService}/setSecurityPolicy',
993              'httpMethod' => 'POST',
994              'parameters' => [
995                'project' => [
996                  'location' => 'path',
997                  'type' => 'string',
998                  'required' => true,
999                ],
1000                'backendService' => [
1001                  'location' => 'path',
1002                  'type' => 'string',
1003                  'required' => true,
1004                ],
1005                'requestId' => [
1006                  'location' => 'query',
1007                  'type' => 'string',
1008                ],
1009              ],
1010            ],'update' => [
1011              'path' => 'projects/{project}/global/backendServices/{backendService}',
1012              'httpMethod' => 'PUT',
1013              'parameters' => [
1014                'project' => [
1015                  'location' => 'path',
1016                  'type' => 'string',
1017                  'required' => true,
1018                ],
1019                'backendService' => [
1020                  'location' => 'path',
1021                  'type' => 'string',
1022                  'required' => true,
1023                ],
1024                'requestId' => [
1025                  'location' => 'query',
1026                  'type' => 'string',
1027                ],
1028              ],
1029            ],
1030          ]
1031        ]
1032    );
1033    $this->diskTypes = new Compute\Resource\DiskTypes(
1034        $this,
1035        $this->serviceName,
1036        'diskTypes',
1037        [
1038          'methods' => [
1039            'aggregatedList' => [
1040              'path' => 'projects/{project}/aggregated/diskTypes',
1041              'httpMethod' => 'GET',
1042              'parameters' => [
1043                'project' => [
1044                  'location' => 'path',
1045                  'type' => 'string',
1046                  'required' => true,
1047                ],
1048                'filter' => [
1049                  'location' => 'query',
1050                  'type' => 'string',
1051                ],
1052                'includeAllScopes' => [
1053                  'location' => 'query',
1054                  'type' => 'boolean',
1055                ],
1056                'maxResults' => [
1057                  'location' => 'query',
1058                  'type' => 'integer',
1059                ],
1060                'orderBy' => [
1061                  'location' => 'query',
1062                  'type' => 'string',
1063                ],
1064                'pageToken' => [
1065                  'location' => 'query',
1066                  'type' => 'string',
1067                ],
1068                'returnPartialSuccess' => [
1069                  'location' => 'query',
1070                  'type' => 'boolean',
1071                ],
1072              ],
1073            ],'get' => [
1074              'path' => 'projects/{project}/zones/{zone}/diskTypes/{diskType}',
1075              'httpMethod' => 'GET',
1076              'parameters' => [
1077                'project' => [
1078                  'location' => 'path',
1079                  'type' => 'string',
1080                  'required' => true,
1081                ],
1082                'zone' => [
1083                  'location' => 'path',
1084                  'type' => 'string',
1085                  'required' => true,
1086                ],
1087                'diskType' => [
1088                  'location' => 'path',
1089                  'type' => 'string',
1090                  'required' => true,
1091                ],
1092              ],
1093            ],'list' => [
1094              'path' => 'projects/{project}/zones/{zone}/diskTypes',
1095              'httpMethod' => 'GET',
1096              'parameters' => [
1097                'project' => [
1098                  'location' => 'path',
1099                  'type' => 'string',
1100                  'required' => true,
1101                ],
1102                'zone' => [
1103                  'location' => 'path',
1104                  'type' => 'string',
1105                  'required' => true,
1106                ],
1107                'filter' => [
1108                  'location' => 'query',
1109                  'type' => 'string',
1110                ],
1111                'maxResults' => [
1112                  'location' => 'query',
1113                  'type' => 'integer',
1114                ],
1115                'orderBy' => [
1116                  'location' => 'query',
1117                  'type' => 'string',
1118                ],
1119                'pageToken' => [
1120                  'location' => 'query',
1121                  'type' => 'string',
1122                ],
1123                'returnPartialSuccess' => [
1124                  'location' => 'query',
1125                  'type' => 'boolean',
1126                ],
1127              ],
1128            ],
1129          ]
1130        ]
1131    );
1132    $this->disks = new Compute\Resource\Disks(
1133        $this,
1134        $this->serviceName,
1135        'disks',
1136        [
1137          'methods' => [
1138            'addResourcePolicies' => [
1139              'path' => 'projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies',
1140              'httpMethod' => 'POST',
1141              'parameters' => [
1142                'project' => [
1143                  'location' => 'path',
1144                  'type' => 'string',
1145                  'required' => true,
1146                ],
1147                'zone' => [
1148                  'location' => 'path',
1149                  'type' => 'string',
1150                  'required' => true,
1151                ],
1152                'disk' => [
1153                  'location' => 'path',
1154                  'type' => 'string',
1155                  'required' => true,
1156                ],
1157                'requestId' => [
1158                  'location' => 'query',
1159                  'type' => 'string',
1160                ],
1161              ],
1162            ],'aggregatedList' => [
1163              'path' => 'projects/{project}/aggregated/disks',
1164              'httpMethod' => 'GET',
1165              'parameters' => [
1166                'project' => [
1167                  'location' => 'path',
1168                  'type' => 'string',
1169                  'required' => true,
1170                ],
1171                'filter' => [
1172                  'location' => 'query',
1173                  'type' => 'string',
1174                ],
1175                'includeAllScopes' => [
1176                  'location' => 'query',
1177                  'type' => 'boolean',
1178                ],
1179                'maxResults' => [
1180                  'location' => 'query',
1181                  'type' => 'integer',
1182                ],
1183                'orderBy' => [
1184                  'location' => 'query',
1185                  'type' => 'string',
1186                ],
1187                'pageToken' => [
1188                  'location' => 'query',
1189                  'type' => 'string',
1190                ],
1191                'returnPartialSuccess' => [
1192                  'location' => 'query',
1193                  'type' => 'boolean',
1194                ],
1195              ],
1196            ],'createSnapshot' => [
1197              'path' => 'projects/{project}/zones/{zone}/disks/{disk}/createSnapshot',
1198              'httpMethod' => 'POST',
1199              'parameters' => [
1200                'project' => [
1201                  'location' => 'path',
1202                  'type' => 'string',
1203                  'required' => true,
1204                ],
1205                'zone' => [
1206                  'location' => 'path',
1207                  'type' => 'string',
1208                  'required' => true,
1209                ],
1210                'disk' => [
1211                  'location' => 'path',
1212                  'type' => 'string',
1213                  'required' => true,
1214                ],
1215                'guestFlush' => [
1216                  'location' => 'query',
1217                  'type' => 'boolean',
1218                ],
1219                'requestId' => [
1220                  'location' => 'query',
1221                  'type' => 'string',
1222                ],
1223              ],
1224            ],'delete' => [
1225              'path' => 'projects/{project}/zones/{zone}/disks/{disk}',
1226              'httpMethod' => 'DELETE',
1227              'parameters' => [
1228                'project' => [
1229                  'location' => 'path',
1230                  'type' => 'string',
1231                  'required' => true,
1232                ],
1233                'zone' => [
1234                  'location' => 'path',
1235                  'type' => 'string',
1236                  'required' => true,
1237                ],
1238                'disk' => [
1239                  'location' => 'path',
1240                  'type' => 'string',
1241                  'required' => true,
1242                ],
1243                'requestId' => [
1244                  'location' => 'query',
1245                  'type' => 'string',
1246                ],
1247              ],
1248            ],'get' => [
1249              'path' => 'projects/{project}/zones/{zone}/disks/{disk}',
1250              'httpMethod' => 'GET',
1251              'parameters' => [
1252                'project' => [
1253                  'location' => 'path',
1254                  'type' => 'string',
1255                  'required' => true,
1256                ],
1257                'zone' => [
1258                  'location' => 'path',
1259                  'type' => 'string',
1260                  'required' => true,
1261                ],
1262                'disk' => [
1263                  'location' => 'path',
1264                  'type' => 'string',
1265                  'required' => true,
1266                ],
1267              ],
1268            ],'getIamPolicy' => [
1269              'path' => 'projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy',
1270              'httpMethod' => 'GET',
1271              'parameters' => [
1272                'project' => [
1273                  'location' => 'path',
1274                  'type' => 'string',
1275                  'required' => true,
1276                ],
1277                'zone' => [
1278                  'location' => 'path',
1279                  'type' => 'string',
1280                  'required' => true,
1281                ],
1282                'resource' => [
1283                  'location' => 'path',
1284                  'type' => 'string',
1285                  'required' => true,
1286                ],
1287                'optionsRequestedPolicyVersion' => [
1288                  'location' => 'query',
1289                  'type' => 'integer',
1290                ],
1291              ],
1292            ],'insert' => [
1293              'path' => 'projects/{project}/zones/{zone}/disks',
1294              'httpMethod' => 'POST',
1295              'parameters' => [
1296                'project' => [
1297                  'location' => 'path',
1298                  'type' => 'string',
1299                  'required' => true,
1300                ],
1301                'zone' => [
1302                  'location' => 'path',
1303                  'type' => 'string',
1304                  'required' => true,
1305                ],
1306                'requestId' => [
1307                  'location' => 'query',
1308                  'type' => 'string',
1309                ],
1310                'sourceImage' => [
1311                  'location' => 'query',
1312                  'type' => 'string',
1313                ],
1314              ],
1315            ],'list' => [
1316              'path' => 'projects/{project}/zones/{zone}/disks',
1317              'httpMethod' => 'GET',
1318              'parameters' => [
1319                'project' => [
1320                  'location' => 'path',
1321                  'type' => 'string',
1322                  'required' => true,
1323                ],
1324                'zone' => [
1325                  'location' => 'path',
1326                  'type' => 'string',
1327                  'required' => true,
1328                ],
1329                'filter' => [
1330                  'location' => 'query',
1331                  'type' => 'string',
1332                ],
1333                'maxResults' => [
1334                  'location' => 'query',
1335                  'type' => 'integer',
1336                ],
1337                'orderBy' => [
1338                  'location' => 'query',
1339                  'type' => 'string',
1340                ],
1341                'pageToken' => [
1342                  'location' => 'query',
1343                  'type' => 'string',
1344                ],
1345                'returnPartialSuccess' => [
1346                  'location' => 'query',
1347                  'type' => 'boolean',
1348                ],
1349              ],
1350            ],'removeResourcePolicies' => [
1351              'path' => 'projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies',
1352              'httpMethod' => 'POST',
1353              'parameters' => [
1354                'project' => [
1355                  'location' => 'path',
1356                  'type' => 'string',
1357                  'required' => true,
1358                ],
1359                'zone' => [
1360                  'location' => 'path',
1361                  'type' => 'string',
1362                  'required' => true,
1363                ],
1364                'disk' => [
1365                  'location' => 'path',
1366                  'type' => 'string',
1367                  'required' => true,
1368                ],
1369                'requestId' => [
1370                  'location' => 'query',
1371                  'type' => 'string',
1372                ],
1373              ],
1374            ],'resize' => [
1375              'path' => 'projects/{project}/zones/{zone}/disks/{disk}/resize',
1376              'httpMethod' => 'POST',
1377              'parameters' => [
1378                'project' => [
1379                  'location' => 'path',
1380                  'type' => 'string',
1381                  'required' => true,
1382                ],
1383                'zone' => [
1384                  'location' => 'path',
1385                  'type' => 'string',
1386                  'required' => true,
1387                ],
1388                'disk' => [
1389                  'location' => 'path',
1390                  'type' => 'string',
1391                  'required' => true,
1392                ],
1393                'requestId' => [
1394                  'location' => 'query',
1395                  'type' => 'string',
1396                ],
1397              ],
1398            ],'setIamPolicy' => [
1399              'path' => 'projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy',
1400              'httpMethod' => 'POST',
1401              'parameters' => [
1402                'project' => [
1403                  'location' => 'path',
1404                  'type' => 'string',
1405                  'required' => true,
1406                ],
1407                'zone' => [
1408                  'location' => 'path',
1409                  'type' => 'string',
1410                  'required' => true,
1411                ],
1412                'resource' => [
1413                  'location' => 'path',
1414                  'type' => 'string',
1415                  'required' => true,
1416                ],
1417              ],
1418            ],'setLabels' => [
1419              'path' => 'projects/{project}/zones/{zone}/disks/{resource}/setLabels',
1420              'httpMethod' => 'POST',
1421              'parameters' => [
1422                'project' => [
1423                  'location' => 'path',
1424                  'type' => 'string',
1425                  'required' => true,
1426                ],
1427                'zone' => [
1428                  'location' => 'path',
1429                  'type' => 'string',
1430                  'required' => true,
1431                ],
1432                'resource' => [
1433                  'location' => 'path',
1434                  'type' => 'string',
1435                  'required' => true,
1436                ],
1437                'requestId' => [
1438                  'location' => 'query',
1439                  'type' => 'string',
1440                ],
1441              ],
1442            ],'testIamPermissions' => [
1443              'path' => 'projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions',
1444              'httpMethod' => 'POST',
1445              'parameters' => [
1446                'project' => [
1447                  'location' => 'path',
1448                  'type' => 'string',
1449                  'required' => true,
1450                ],
1451                'zone' => [
1452                  'location' => 'path',
1453                  'type' => 'string',
1454                  'required' => true,
1455                ],
1456                'resource' => [
1457                  'location' => 'path',
1458                  'type' => 'string',
1459                  'required' => true,
1460                ],
1461              ],
1462            ],
1463          ]
1464        ]
1465    );
1466    $this->externalVpnGateways = new Compute\Resource\ExternalVpnGateways(
1467        $this,
1468        $this->serviceName,
1469        'externalVpnGateways',
1470        [
1471          'methods' => [
1472            'delete' => [
1473              'path' => 'projects/{project}/global/externalVpnGateways/{externalVpnGateway}',
1474              'httpMethod' => 'DELETE',
1475              'parameters' => [
1476                'project' => [
1477                  'location' => 'path',
1478                  'type' => 'string',
1479                  'required' => true,
1480                ],
1481                'externalVpnGateway' => [
1482                  'location' => 'path',
1483                  'type' => 'string',
1484                  'required' => true,
1485                ],
1486                'requestId' => [
1487                  'location' => 'query',
1488                  'type' => 'string',
1489                ],
1490              ],
1491            ],'get' => [
1492              'path' => 'projects/{project}/global/externalVpnGateways/{externalVpnGateway}',
1493              'httpMethod' => 'GET',
1494              'parameters' => [
1495                'project' => [
1496                  'location' => 'path',
1497                  'type' => 'string',
1498                  'required' => true,
1499                ],
1500                'externalVpnGateway' => [
1501                  'location' => 'path',
1502                  'type' => 'string',
1503                  'required' => true,
1504                ],
1505              ],
1506            ],'insert' => [
1507              'path' => 'projects/{project}/global/externalVpnGateways',
1508              'httpMethod' => 'POST',
1509              'parameters' => [
1510                'project' => [
1511                  'location' => 'path',
1512                  'type' => 'string',
1513                  'required' => true,
1514                ],
1515                'requestId' => [
1516                  'location' => 'query',
1517                  'type' => 'string',
1518                ],
1519              ],
1520            ],'list' => [
1521              'path' => 'projects/{project}/global/externalVpnGateways',
1522              'httpMethod' => 'GET',
1523              'parameters' => [
1524                'project' => [
1525                  'location' => 'path',
1526                  'type' => 'string',
1527                  'required' => true,
1528                ],
1529                'filter' => [
1530                  'location' => 'query',
1531                  'type' => 'string',
1532                ],
1533                'maxResults' => [
1534                  'location' => 'query',
1535                  'type' => 'integer',
1536                ],
1537                'orderBy' => [
1538                  'location' => 'query',
1539                  'type' => 'string',
1540                ],
1541                'pageToken' => [
1542                  'location' => 'query',
1543                  'type' => 'string',
1544                ],
1545                'returnPartialSuccess' => [
1546                  'location' => 'query',
1547                  'type' => 'boolean',
1548                ],
1549              ],
1550            ],'setLabels' => [
1551              'path' => 'projects/{project}/global/externalVpnGateways/{resource}/setLabels',
1552              'httpMethod' => 'POST',
1553              'parameters' => [
1554                'project' => [
1555                  'location' => 'path',
1556                  'type' => 'string',
1557                  'required' => true,
1558                ],
1559                'resource' => [
1560                  'location' => 'path',
1561                  'type' => 'string',
1562                  'required' => true,
1563                ],
1564              ],
1565            ],'testIamPermissions' => [
1566              'path' => 'projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions',
1567              'httpMethod' => 'POST',
1568              'parameters' => [
1569                'project' => [
1570                  'location' => 'path',
1571                  'type' => 'string',
1572                  'required' => true,
1573                ],
1574                'resource' => [
1575                  'location' => 'path',
1576                  'type' => 'string',
1577                  'required' => true,
1578                ],
1579              ],
1580            ],
1581          ]
1582        ]
1583    );
1584    $this->firewallPolicies = new Compute\Resource\FirewallPolicies(
1585        $this,
1586        $this->serviceName,
1587        'firewallPolicies',
1588        [
1589          'methods' => [
1590            'addAssociation' => [
1591              'path' => 'locations/global/firewallPolicies/{firewallPolicy}/addAssociation',
1592              'httpMethod' => 'POST',
1593              'parameters' => [
1594                'firewallPolicy' => [
1595                  'location' => 'path',
1596                  'type' => 'string',
1597                  'required' => true,
1598                ],
1599                'replaceExistingAssociation' => [
1600                  'location' => 'query',
1601                  'type' => 'boolean',
1602                ],
1603                'requestId' => [
1604                  'location' => 'query',
1605                  'type' => 'string',
1606                ],
1607              ],
1608            ],'addRule' => [
1609              'path' => 'locations/global/firewallPolicies/{firewallPolicy}/addRule',
1610              'httpMethod' => 'POST',
1611              'parameters' => [
1612                'firewallPolicy' => [
1613                  'location' => 'path',
1614                  'type' => 'string',
1615                  'required' => true,
1616                ],
1617                'requestId' => [
1618                  'location' => 'query',
1619                  'type' => 'string',
1620                ],
1621              ],
1622            ],'cloneRules' => [
1623              'path' => 'locations/global/firewallPolicies/{firewallPolicy}/cloneRules',
1624              'httpMethod' => 'POST',
1625              'parameters' => [
1626                'firewallPolicy' => [
1627                  'location' => 'path',
1628                  'type' => 'string',
1629                  'required' => true,
1630                ],
1631                'requestId' => [
1632                  'location' => 'query',
1633                  'type' => 'string',
1634                ],
1635                'sourceFirewallPolicy' => [
1636                  'location' => 'query',
1637                  'type' => 'string',
1638                ],
1639              ],
1640            ],'delete' => [
1641              'path' => 'locations/global/firewallPolicies/{firewallPolicy}',
1642              'httpMethod' => 'DELETE',
1643              'parameters' => [
1644                'firewallPolicy' => [
1645                  'location' => 'path',
1646                  'type' => 'string',
1647                  'required' => true,
1648                ],
1649                'requestId' => [
1650                  'location' => 'query',
1651                  'type' => 'string',
1652                ],
1653              ],
1654            ],'get' => [
1655              'path' => 'locations/global/firewallPolicies/{firewallPolicy}',
1656              'httpMethod' => 'GET',
1657              'parameters' => [
1658                'firewallPolicy' => [
1659                  'location' => 'path',
1660                  'type' => 'string',
1661                  'required' => true,
1662                ],
1663              ],
1664            ],'getAssociation' => [
1665              'path' => 'locations/global/firewallPolicies/{firewallPolicy}/getAssociation',
1666              'httpMethod' => 'GET',
1667              'parameters' => [
1668                'firewallPolicy' => [
1669                  'location' => 'path',
1670                  'type' => 'string',
1671                  'required' => true,
1672                ],
1673                'name' => [
1674                  'location' => 'query',
1675                  'type' => 'string',
1676                ],
1677              ],
1678            ],'getIamPolicy' => [
1679              'path' => 'locations/global/firewallPolicies/{resource}/getIamPolicy',
1680              'httpMethod' => 'GET',
1681              'parameters' => [
1682                'resource' => [
1683                  'location' => 'path',
1684                  'type' => 'string',
1685                  'required' => true,
1686                ],
1687                'optionsRequestedPolicyVersion' => [
1688                  'location' => 'query',
1689                  'type' => 'integer',
1690                ],
1691              ],
1692            ],'getRule' => [
1693              'path' => 'locations/global/firewallPolicies/{firewallPolicy}/getRule',
1694              'httpMethod' => 'GET',
1695              'parameters' => [
1696                'firewallPolicy' => [
1697                  'location' => 'path',
1698                  'type' => 'string',
1699                  'required' => true,
1700                ],
1701                'priority' => [
1702                  'location' => 'query',
1703                  'type' => 'integer',
1704                ],
1705              ],
1706            ],'insert' => [
1707              'path' => 'locations/global/firewallPolicies',
1708              'httpMethod' => 'POST',
1709              'parameters' => [
1710                'parentId' => [
1711                  'location' => 'query',
1712                  'type' => 'string',
1713                ],
1714                'requestId' => [
1715                  'location' => 'query',
1716                  'type' => 'string',
1717                ],
1718              ],
1719            ],'list' => [
1720              'path' => 'locations/global/firewallPolicies',
1721              'httpMethod' => 'GET',
1722              'parameters' => [
1723                'filter' => [
1724                  'location' => 'query',
1725                  'type' => 'string',
1726                ],
1727                'maxResults' => [
1728                  'location' => 'query',
1729                  'type' => 'integer',
1730                ],
1731                'orderBy' => [
1732                  'location' => 'query',
1733                  'type' => 'string',
1734                ],
1735                'pageToken' => [
1736                  'location' => 'query',
1737                  'type' => 'string',
1738                ],
1739                'parentId' => [
1740                  'location' => 'query',
1741                  'type' => 'string',
1742                ],
1743                'returnPartialSuccess' => [
1744                  'location' => 'query',
1745                  'type' => 'boolean',
1746                ],
1747              ],
1748            ],'listAssociations' => [
1749              'path' => 'locations/global/firewallPolicies/listAssociations',
1750              'httpMethod' => 'GET',
1751              'parameters' => [
1752                'targetResource' => [
1753                  'location' => 'query',
1754                  'type' => 'string',
1755                ],
1756              ],
1757            ],'move' => [
1758              'path' => 'locations/global/firewallPolicies/{firewallPolicy}/move',
1759              'httpMethod' => 'POST',
1760              'parameters' => [
1761                'firewallPolicy' => [
1762                  'location' => 'path',
1763                  'type' => 'string',
1764                  'required' => true,
1765                ],
1766                'parentId' => [
1767                  'location' => 'query',
1768                  'type' => 'string',
1769                ],
1770                'requestId' => [
1771                  'location' => 'query',
1772                  'type' => 'string',
1773                ],
1774              ],
1775            ],'patch' => [
1776              'path' => 'locations/global/firewallPolicies/{firewallPolicy}',
1777              'httpMethod' => 'PATCH',
1778              'parameters' => [
1779                'firewallPolicy' => [
1780                  'location' => 'path',
1781                  'type' => 'string',
1782                  'required' => true,
1783                ],
1784                'requestId' => [
1785                  'location' => 'query',
1786                  'type' => 'string',
1787                ],
1788              ],
1789            ],'patchRule' => [
1790              'path' => 'locations/global/firewallPolicies/{firewallPolicy}/patchRule',
1791              'httpMethod' => 'POST',
1792              'parameters' => [
1793                'firewallPolicy' => [
1794                  'location' => 'path',
1795                  'type' => 'string',
1796                  'required' => true,
1797                ],
1798                'priority' => [
1799                  'location' => 'query',
1800                  'type' => 'integer',
1801                ],
1802                'requestId' => [
1803                  'location' => 'query',
1804                  'type' => 'string',
1805                ],
1806              ],
1807            ],'removeAssociation' => [
1808              'path' => 'locations/global/firewallPolicies/{firewallPolicy}/removeAssociation',
1809              'httpMethod' => 'POST',
1810              'parameters' => [
1811                'firewallPolicy' => [
1812                  'location' => 'path',
1813                  'type' => 'string',
1814                  'required' => true,
1815                ],
1816                'name' => [
1817                  'location' => 'query',
1818                  'type' => 'string',
1819                ],
1820                'requestId' => [
1821                  'location' => 'query',
1822                  'type' => 'string',
1823                ],
1824              ],
1825            ],'removeRule' => [
1826              'path' => 'locations/global/firewallPolicies/{firewallPolicy}/removeRule',
1827              'httpMethod' => 'POST',
1828              'parameters' => [
1829                'firewallPolicy' => [
1830                  'location' => 'path',
1831                  'type' => 'string',
1832                  'required' => true,
1833                ],
1834                'priority' => [
1835                  'location' => 'query',
1836                  'type' => 'integer',
1837                ],
1838                'requestId' => [
1839                  'location' => 'query',
1840                  'type' => 'string',
1841                ],
1842              ],
1843            ],'setIamPolicy' => [
1844              'path' => 'locations/global/firewallPolicies/{resource}/setIamPolicy',
1845              'httpMethod' => 'POST',
1846              'parameters' => [
1847                'resource' => [
1848                  'location' => 'path',
1849                  'type' => 'string',
1850                  'required' => true,
1851                ],
1852              ],
1853            ],'testIamPermissions' => [
1854              'path' => 'locations/global/firewallPolicies/{resource}/testIamPermissions',
1855              'httpMethod' => 'POST',
1856              'parameters' => [
1857                'resource' => [
1858                  'location' => 'path',
1859                  'type' => 'string',
1860                  'required' => true,
1861                ],
1862              ],
1863            ],
1864          ]
1865        ]
1866    );
1867    $this->firewalls = new Compute\Resource\Firewalls(
1868        $this,
1869        $this->serviceName,
1870        'firewalls',
1871        [
1872          'methods' => [
1873            'delete' => [
1874              'path' => 'projects/{project}/global/firewalls/{firewall}',
1875              'httpMethod' => 'DELETE',
1876              'parameters' => [
1877                'project' => [
1878                  'location' => 'path',
1879                  'type' => 'string',
1880                  'required' => true,
1881                ],
1882                'firewall' => [
1883                  'location' => 'path',
1884                  'type' => 'string',
1885                  'required' => true,
1886                ],
1887                'requestId' => [
1888                  'location' => 'query',
1889                  'type' => 'string',
1890                ],
1891              ],
1892            ],'get' => [
1893              'path' => 'projects/{project}/global/firewalls/{firewall}',
1894              'httpMethod' => 'GET',
1895              'parameters' => [
1896                'project' => [
1897                  'location' => 'path',
1898                  'type' => 'string',
1899                  'required' => true,
1900                ],
1901                'firewall' => [
1902                  'location' => 'path',
1903                  'type' => 'string',
1904                  'required' => true,
1905                ],
1906              ],
1907            ],'insert' => [
1908              'path' => 'projects/{project}/global/firewalls',
1909              'httpMethod' => 'POST',
1910              'parameters' => [
1911                'project' => [
1912                  'location' => 'path',
1913                  'type' => 'string',
1914                  'required' => true,
1915                ],
1916                'requestId' => [
1917                  'location' => 'query',
1918                  'type' => 'string',
1919                ],
1920              ],
1921            ],'list' => [
1922              'path' => 'projects/{project}/global/firewalls',
1923              'httpMethod' => 'GET',
1924              'parameters' => [
1925                'project' => [
1926                  'location' => 'path',
1927                  'type' => 'string',
1928                  'required' => true,
1929                ],
1930                'filter' => [
1931                  'location' => 'query',
1932                  'type' => 'string',
1933                ],
1934                'maxResults' => [
1935                  'location' => 'query',
1936                  'type' => 'integer',
1937                ],
1938                'orderBy' => [
1939                  'location' => 'query',
1940                  'type' => 'string',
1941                ],
1942                'pageToken' => [
1943                  'location' => 'query',
1944                  'type' => 'string',
1945                ],
1946                'returnPartialSuccess' => [
1947                  'location' => 'query',
1948                  'type' => 'boolean',
1949                ],
1950              ],
1951            ],'patch' => [
1952              'path' => 'projects/{project}/global/firewalls/{firewall}',
1953              'httpMethod' => 'PATCH',
1954              'parameters' => [
1955                'project' => [
1956                  'location' => 'path',
1957                  'type' => 'string',
1958                  'required' => true,
1959                ],
1960                'firewall' => [
1961                  'location' => 'path',
1962                  'type' => 'string',
1963                  'required' => true,
1964                ],
1965                'requestId' => [
1966                  'location' => 'query',
1967                  'type' => 'string',
1968                ],
1969              ],
1970            ],'update' => [
1971              'path' => 'projects/{project}/global/firewalls/{firewall}',
1972              'httpMethod' => 'PUT',
1973              'parameters' => [
1974                'project' => [
1975                  'location' => 'path',
1976                  'type' => 'string',
1977                  'required' => true,
1978                ],
1979                'firewall' => [
1980                  'location' => 'path',
1981                  'type' => 'string',
1982                  'required' => true,
1983                ],
1984                'requestId' => [
1985                  'location' => 'query',
1986                  'type' => 'string',
1987                ],
1988              ],
1989            ],
1990          ]
1991        ]
1992    );
1993    $this->forwardingRules = new Compute\Resource\ForwardingRules(
1994        $this,
1995        $this->serviceName,
1996        'forwardingRules',
1997        [
1998          'methods' => [
1999            'aggregatedList' => [
2000              'path' => 'projects/{project}/aggregated/forwardingRules',
2001              'httpMethod' => 'GET',
2002              'parameters' => [
2003                'project' => [
2004                  'location' => 'path',
2005                  'type' => 'string',
2006                  'required' => true,
2007                ],
2008                'filter' => [
2009                  'location' => 'query',
2010                  'type' => 'string',
2011                ],
2012                'includeAllScopes' => [
2013                  'location' => 'query',
2014                  'type' => 'boolean',
2015                ],
2016                'maxResults' => [
2017                  'location' => 'query',
2018                  'type' => 'integer',
2019                ],
2020                'orderBy' => [
2021                  'location' => 'query',
2022                  'type' => 'string',
2023                ],
2024                'pageToken' => [
2025                  'location' => 'query',
2026                  'type' => 'string',
2027                ],
2028                'returnPartialSuccess' => [
2029                  'location' => 'query',
2030                  'type' => 'boolean',
2031                ],
2032              ],
2033            ],'delete' => [
2034              'path' => 'projects/{project}/regions/{region}/forwardingRules/{forwardingRule}',
2035              'httpMethod' => 'DELETE',
2036              'parameters' => [
2037                'project' => [
2038                  'location' => 'path',
2039                  'type' => 'string',
2040                  'required' => true,
2041                ],
2042                'region' => [
2043                  'location' => 'path',
2044                  'type' => 'string',
2045                  'required' => true,
2046                ],
2047                'forwardingRule' => [
2048                  'location' => 'path',
2049                  'type' => 'string',
2050                  'required' => true,
2051                ],
2052                'requestId' => [
2053                  'location' => 'query',
2054                  'type' => 'string',
2055                ],
2056              ],
2057            ],'get' => [
2058              'path' => 'projects/{project}/regions/{region}/forwardingRules/{forwardingRule}',
2059              'httpMethod' => 'GET',
2060              'parameters' => [
2061                'project' => [
2062                  'location' => 'path',
2063                  'type' => 'string',
2064                  'required' => true,
2065                ],
2066                'region' => [
2067                  'location' => 'path',
2068                  'type' => 'string',
2069                  'required' => true,
2070                ],
2071                'forwardingRule' => [
2072                  'location' => 'path',
2073                  'type' => 'string',
2074                  'required' => true,
2075                ],
2076              ],
2077            ],'insert' => [
2078              'path' => 'projects/{project}/regions/{region}/forwardingRules',
2079              'httpMethod' => 'POST',
2080              'parameters' => [
2081                'project' => [
2082                  'location' => 'path',
2083                  'type' => 'string',
2084                  'required' => true,
2085                ],
2086                'region' => [
2087                  'location' => 'path',
2088                  'type' => 'string',
2089                  'required' => true,
2090                ],
2091                'requestId' => [
2092                  'location' => 'query',
2093                  'type' => 'string',
2094                ],
2095              ],
2096            ],'list' => [
2097              'path' => 'projects/{project}/regions/{region}/forwardingRules',
2098              'httpMethod' => 'GET',
2099              'parameters' => [
2100                'project' => [
2101                  'location' => 'path',
2102                  'type' => 'string',
2103                  'required' => true,
2104                ],
2105                'region' => [
2106                  'location' => 'path',
2107                  'type' => 'string',
2108                  'required' => true,
2109                ],
2110                'filter' => [
2111                  'location' => 'query',
2112                  'type' => 'string',
2113                ],
2114                'maxResults' => [
2115                  'location' => 'query',
2116                  'type' => 'integer',
2117                ],
2118                'orderBy' => [
2119                  'location' => 'query',
2120                  'type' => 'string',
2121                ],
2122                'pageToken' => [
2123                  'location' => 'query',
2124                  'type' => 'string',
2125                ],
2126                'returnPartialSuccess' => [
2127                  'location' => 'query',
2128                  'type' => 'boolean',
2129                ],
2130              ],
2131            ],'patch' => [
2132              'path' => 'projects/{project}/regions/{region}/forwardingRules/{forwardingRule}',
2133              'httpMethod' => 'PATCH',
2134              'parameters' => [
2135                'project' => [
2136                  'location' => 'path',
2137                  'type' => 'string',
2138                  'required' => true,
2139                ],
2140                'region' => [
2141                  'location' => 'path',
2142                  'type' => 'string',
2143                  'required' => true,
2144                ],
2145                'forwardingRule' => [
2146                  'location' => 'path',
2147                  'type' => 'string',
2148                  'required' => true,
2149                ],
2150                'requestId' => [
2151                  'location' => 'query',
2152                  'type' => 'string',
2153                ],
2154              ],
2155            ],'setLabels' => [
2156              'path' => 'projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels',
2157              'httpMethod' => 'POST',
2158              'parameters' => [
2159                'project' => [
2160                  'location' => 'path',
2161                  'type' => 'string',
2162                  'required' => true,
2163                ],
2164                'region' => [
2165                  'location' => 'path',
2166                  'type' => 'string',
2167                  'required' => true,
2168                ],
2169                'resource' => [
2170                  'location' => 'path',
2171                  'type' => 'string',
2172                  'required' => true,
2173                ],
2174                'requestId' => [
2175                  'location' => 'query',
2176                  'type' => 'string',
2177                ],
2178              ],
2179            ],'setTarget' => [
2180              'path' => 'projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget',
2181              'httpMethod' => 'POST',
2182              'parameters' => [
2183                'project' => [
2184                  'location' => 'path',
2185                  'type' => 'string',
2186                  'required' => true,
2187                ],
2188                'region' => [
2189                  'location' => 'path',
2190                  'type' => 'string',
2191                  'required' => true,
2192                ],
2193                'forwardingRule' => [
2194                  'location' => 'path',
2195                  'type' => 'string',
2196                  'required' => true,
2197                ],
2198                'requestId' => [
2199                  'location' => 'query',
2200                  'type' => 'string',
2201                ],
2202              ],
2203            ],
2204          ]
2205        ]
2206    );
2207    $this->globalAddresses = new Compute\Resource\GlobalAddresses(
2208        $this,
2209        $this->serviceName,
2210        'globalAddresses',
2211        [
2212          'methods' => [
2213            'delete' => [
2214              'path' => 'projects/{project}/global/addresses/{address}',
2215              'httpMethod' => 'DELETE',
2216              'parameters' => [
2217                'project' => [
2218                  'location' => 'path',
2219                  'type' => 'string',
2220                  'required' => true,
2221                ],
2222                'address' => [
2223                  'location' => 'path',
2224                  'type' => 'string',
2225                  'required' => true,
2226                ],
2227                'requestId' => [
2228                  'location' => 'query',
2229                  'type' => 'string',
2230                ],
2231              ],
2232            ],'get' => [
2233              'path' => 'projects/{project}/global/addresses/{address}',
2234              'httpMethod' => 'GET',
2235              'parameters' => [
2236                'project' => [
2237                  'location' => 'path',
2238                  'type' => 'string',
2239                  'required' => true,
2240                ],
2241                'address' => [
2242                  'location' => 'path',
2243                  'type' => 'string',
2244                  'required' => true,
2245                ],
2246              ],
2247            ],'insert' => [
2248              'path' => 'projects/{project}/global/addresses',
2249              'httpMethod' => 'POST',
2250              'parameters' => [
2251                'project' => [
2252                  'location' => 'path',
2253                  'type' => 'string',
2254                  'required' => true,
2255                ],
2256                'requestId' => [
2257                  'location' => 'query',
2258                  'type' => 'string',
2259                ],
2260              ],
2261            ],'list' => [
2262              'path' => 'projects/{project}/global/addresses',
2263              'httpMethod' => 'GET',
2264              'parameters' => [
2265                'project' => [
2266                  'location' => 'path',
2267                  'type' => 'string',
2268                  'required' => true,
2269                ],
2270                'filter' => [
2271                  'location' => 'query',
2272                  'type' => 'string',
2273                ],
2274                'maxResults' => [
2275                  'location' => 'query',
2276                  'type' => 'integer',
2277                ],
2278                'orderBy' => [
2279                  'location' => 'query',
2280                  'type' => 'string',
2281                ],
2282                'pageToken' => [
2283                  'location' => 'query',
2284                  'type' => 'string',
2285                ],
2286                'returnPartialSuccess' => [
2287                  'location' => 'query',
2288                  'type' => 'boolean',
2289                ],
2290              ],
2291            ],
2292          ]
2293        ]
2294    );
2295    $this->globalForwardingRules = new Compute\Resource\GlobalForwardingRules(
2296        $this,
2297        $this->serviceName,
2298        'globalForwardingRules',
2299        [
2300          'methods' => [
2301            'delete' => [
2302              'path' => 'projects/{project}/global/forwardingRules/{forwardingRule}',
2303              'httpMethod' => 'DELETE',
2304              'parameters' => [
2305                'project' => [
2306                  'location' => 'path',
2307                  'type' => 'string',
2308                  'required' => true,
2309                ],
2310                'forwardingRule' => [
2311                  'location' => 'path',
2312                  'type' => 'string',
2313                  'required' => true,
2314                ],
2315                'requestId' => [
2316                  'location' => 'query',
2317                  'type' => 'string',
2318                ],
2319              ],
2320            ],'get' => [
2321              'path' => 'projects/{project}/global/forwardingRules/{forwardingRule}',
2322              'httpMethod' => 'GET',
2323              'parameters' => [
2324                'project' => [
2325                  'location' => 'path',
2326                  'type' => 'string',
2327                  'required' => true,
2328                ],
2329                'forwardingRule' => [
2330                  'location' => 'path',
2331                  'type' => 'string',
2332                  'required' => true,
2333                ],
2334              ],
2335            ],'insert' => [
2336              'path' => 'projects/{project}/global/forwardingRules',
2337              'httpMethod' => 'POST',
2338              'parameters' => [
2339                'project' => [
2340                  'location' => 'path',
2341                  'type' => 'string',
2342                  'required' => true,
2343                ],
2344                'requestId' => [
2345                  'location' => 'query',
2346                  'type' => 'string',
2347                ],
2348              ],
2349            ],'list' => [
2350              'path' => 'projects/{project}/global/forwardingRules',
2351              'httpMethod' => 'GET',
2352              'parameters' => [
2353                'project' => [
2354                  'location' => 'path',
2355                  'type' => 'string',
2356                  'required' => true,
2357                ],
2358                'filter' => [
2359                  'location' => 'query',
2360                  'type' => 'string',
2361                ],
2362                'maxResults' => [
2363                  'location' => 'query',
2364                  'type' => 'integer',
2365                ],
2366                'orderBy' => [
2367                  'location' => 'query',
2368                  'type' => 'string',
2369                ],
2370                'pageToken' => [
2371                  'location' => 'query',
2372                  'type' => 'string',
2373                ],
2374                'returnPartialSuccess' => [
2375                  'location' => 'query',
2376                  'type' => 'boolean',
2377                ],
2378              ],
2379            ],'patch' => [
2380              'path' => 'projects/{project}/global/forwardingRules/{forwardingRule}',
2381              'httpMethod' => 'PATCH',
2382              'parameters' => [
2383                'project' => [
2384                  'location' => 'path',
2385                  'type' => 'string',
2386                  'required' => true,
2387                ],
2388                'forwardingRule' => [
2389                  'location' => 'path',
2390                  'type' => 'string',
2391                  'required' => true,
2392                ],
2393                'requestId' => [
2394                  'location' => 'query',
2395                  'type' => 'string',
2396                ],
2397              ],
2398            ],'setLabels' => [
2399              'path' => 'projects/{project}/global/forwardingRules/{resource}/setLabels',
2400              'httpMethod' => 'POST',
2401              'parameters' => [
2402                'project' => [
2403                  'location' => 'path',
2404                  'type' => 'string',
2405                  'required' => true,
2406                ],
2407                'resource' => [
2408                  'location' => 'path',
2409                  'type' => 'string',
2410                  'required' => true,
2411                ],
2412              ],
2413            ],'setTarget' => [
2414              'path' => 'projects/{project}/global/forwardingRules/{forwardingRule}/setTarget',
2415              'httpMethod' => 'POST',
2416              'parameters' => [
2417                'project' => [
2418                  'location' => 'path',
2419                  'type' => 'string',
2420                  'required' => true,
2421                ],
2422                'forwardingRule' => [
2423                  'location' => 'path',
2424                  'type' => 'string',
2425                  'required' => true,
2426                ],
2427                'requestId' => [
2428                  'location' => 'query',
2429                  'type' => 'string',
2430                ],
2431              ],
2432            ],
2433          ]
2434        ]
2435    );
2436    $this->globalNetworkEndpointGroups = new Compute\Resource\GlobalNetworkEndpointGroups(
2437        $this,
2438        $this->serviceName,
2439        'globalNetworkEndpointGroups',
2440        [
2441          'methods' => [
2442            'attachNetworkEndpoints' => [
2443              'path' => 'projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints',
2444              'httpMethod' => 'POST',
2445              'parameters' => [
2446                'project' => [
2447                  'location' => 'path',
2448                  'type' => 'string',
2449                  'required' => true,
2450                ],
2451                'networkEndpointGroup' => [
2452                  'location' => 'path',
2453                  'type' => 'string',
2454                  'required' => true,
2455                ],
2456                'requestId' => [
2457                  'location' => 'query',
2458                  'type' => 'string',
2459                ],
2460              ],
2461            ],'delete' => [
2462              'path' => 'projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}',
2463              'httpMethod' => 'DELETE',
2464              'parameters' => [
2465                'project' => [
2466                  'location' => 'path',
2467                  'type' => 'string',
2468                  'required' => true,
2469                ],
2470                'networkEndpointGroup' => [
2471                  'location' => 'path',
2472                  'type' => 'string',
2473                  'required' => true,
2474                ],
2475                'requestId' => [
2476                  'location' => 'query',
2477                  'type' => 'string',
2478                ],
2479              ],
2480            ],'detachNetworkEndpoints' => [
2481              'path' => 'projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints',
2482              'httpMethod' => 'POST',
2483              'parameters' => [
2484                'project' => [
2485                  'location' => 'path',
2486                  'type' => 'string',
2487                  'required' => true,
2488                ],
2489                'networkEndpointGroup' => [
2490                  'location' => 'path',
2491                  'type' => 'string',
2492                  'required' => true,
2493                ],
2494                'requestId' => [
2495                  'location' => 'query',
2496                  'type' => 'string',
2497                ],
2498              ],
2499            ],'get' => [
2500              'path' => 'projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}',
2501              'httpMethod' => 'GET',
2502              'parameters' => [
2503                'project' => [
2504                  'location' => 'path',
2505                  'type' => 'string',
2506                  'required' => true,
2507                ],
2508                'networkEndpointGroup' => [
2509                  'location' => 'path',
2510                  'type' => 'string',
2511                  'required' => true,
2512                ],
2513              ],
2514            ],'insert' => [
2515              'path' => 'projects/{project}/global/networkEndpointGroups',
2516              'httpMethod' => 'POST',
2517              'parameters' => [
2518                'project' => [
2519                  'location' => 'path',
2520                  'type' => 'string',
2521                  'required' => true,
2522                ],
2523                'requestId' => [
2524                  'location' => 'query',
2525                  'type' => 'string',
2526                ],
2527              ],
2528            ],'list' => [
2529              'path' => 'projects/{project}/global/networkEndpointGroups',
2530              'httpMethod' => 'GET',
2531              'parameters' => [
2532                'project' => [
2533                  'location' => 'path',
2534                  'type' => 'string',
2535                  'required' => true,
2536                ],
2537                'filter' => [
2538                  'location' => 'query',
2539                  'type' => 'string',
2540                ],
2541                'maxResults' => [
2542                  'location' => 'query',
2543                  'type' => 'integer',
2544                ],
2545                'orderBy' => [
2546                  'location' => 'query',
2547                  'type' => 'string',
2548                ],
2549                'pageToken' => [
2550                  'location' => 'query',
2551                  'type' => 'string',
2552                ],
2553                'returnPartialSuccess' => [
2554                  'location' => 'query',
2555                  'type' => 'boolean',
2556                ],
2557              ],
2558            ],'listNetworkEndpoints' => [
2559              'path' => 'projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints',
2560              'httpMethod' => 'POST',
2561              'parameters' => [
2562                'project' => [
2563                  'location' => 'path',
2564                  'type' => 'string',
2565                  'required' => true,
2566                ],
2567                'networkEndpointGroup' => [
2568                  'location' => 'path',
2569                  'type' => 'string',
2570                  'required' => true,
2571                ],
2572                'filter' => [
2573                  'location' => 'query',
2574                  'type' => 'string',
2575                ],
2576                'maxResults' => [
2577                  'location' => 'query',
2578                  'type' => 'integer',
2579                ],
2580                'orderBy' => [
2581                  'location' => 'query',
2582                  'type' => 'string',
2583                ],
2584                'pageToken' => [
2585                  'location' => 'query',
2586                  'type' => 'string',
2587                ],
2588                'returnPartialSuccess' => [
2589                  'location' => 'query',
2590                  'type' => 'boolean',
2591                ],
2592              ],
2593            ],
2594          ]
2595        ]
2596    );
2597    $this->globalOperations = new Compute\Resource\GlobalOperations(
2598        $this,
2599        $this->serviceName,
2600        'globalOperations',
2601        [
2602          'methods' => [
2603            'aggregatedList' => [
2604              'path' => 'projects/{project}/aggregated/operations',
2605              'httpMethod' => 'GET',
2606              'parameters' => [
2607                'project' => [
2608                  'location' => 'path',
2609                  'type' => 'string',
2610                  'required' => true,
2611                ],
2612                'filter' => [
2613                  'location' => 'query',
2614                  'type' => 'string',
2615                ],
2616                'includeAllScopes' => [
2617                  'location' => 'query',
2618                  'type' => 'boolean',
2619                ],
2620                'maxResults' => [
2621                  'location' => 'query',
2622                  'type' => 'integer',
2623                ],
2624                'orderBy' => [
2625                  'location' => 'query',
2626                  'type' => 'string',
2627                ],
2628                'pageToken' => [
2629                  'location' => 'query',
2630                  'type' => 'string',
2631                ],
2632                'returnPartialSuccess' => [
2633                  'location' => 'query',
2634                  'type' => 'boolean',
2635                ],
2636              ],
2637            ],'delete' => [
2638              'path' => 'projects/{project}/global/operations/{operation}',
2639              'httpMethod' => 'DELETE',
2640              'parameters' => [
2641                'project' => [
2642                  'location' => 'path',
2643                  'type' => 'string',
2644                  'required' => true,
2645                ],
2646                'operation' => [
2647                  'location' => 'path',
2648                  'type' => 'string',
2649                  'required' => true,
2650                ],
2651              ],
2652            ],'get' => [
2653              'path' => 'projects/{project}/global/operations/{operation}',
2654              'httpMethod' => 'GET',
2655              'parameters' => [
2656                'project' => [
2657                  'location' => 'path',
2658                  'type' => 'string',
2659                  'required' => true,
2660                ],
2661                'operation' => [
2662                  'location' => 'path',
2663                  'type' => 'string',
2664                  'required' => true,
2665                ],
2666              ],
2667            ],'list' => [
2668              'path' => 'projects/{project}/global/operations',
2669              'httpMethod' => 'GET',
2670              'parameters' => [
2671                'project' => [
2672                  'location' => 'path',
2673                  'type' => 'string',
2674                  'required' => true,
2675                ],
2676                'filter' => [
2677                  'location' => 'query',
2678                  'type' => 'string',
2679                ],
2680                'maxResults' => [
2681                  'location' => 'query',
2682                  'type' => 'integer',
2683                ],
2684                'orderBy' => [
2685                  'location' => 'query',
2686                  'type' => 'string',
2687                ],
2688                'pageToken' => [
2689                  'location' => 'query',
2690                  'type' => 'string',
2691                ],
2692                'returnPartialSuccess' => [
2693                  'location' => 'query',
2694                  'type' => 'boolean',
2695                ],
2696              ],
2697            ],'wait' => [
2698              'path' => 'projects/{project}/global/operations/{operation}/wait',
2699              'httpMethod' => 'POST',
2700              'parameters' => [
2701                'project' => [
2702                  'location' => 'path',
2703                  'type' => 'string',
2704                  'required' => true,
2705                ],
2706                'operation' => [
2707                  'location' => 'path',
2708                  'type' => 'string',
2709                  'required' => true,
2710                ],
2711              ],
2712            ],
2713          ]
2714        ]
2715    );
2716    $this->globalOrganizationOperations = new Compute\Resource\GlobalOrganizationOperations(
2717        $this,
2718        $this->serviceName,
2719        'globalOrganizationOperations',
2720        [
2721          'methods' => [
2722            'delete' => [
2723              'path' => 'locations/global/operations/{operation}',
2724              'httpMethod' => 'DELETE',
2725              'parameters' => [
2726                'operation' => [
2727                  'location' => 'path',
2728                  'type' => 'string',
2729                  'required' => true,
2730                ],
2731                'parentId' => [
2732                  'location' => 'query',
2733                  'type' => 'string',
2734                ],
2735              ],
2736            ],'get' => [
2737              'path' => 'locations/global/operations/{operation}',
2738              'httpMethod' => 'GET',
2739              'parameters' => [
2740                'operation' => [
2741                  'location' => 'path',
2742                  'type' => 'string',
2743                  'required' => true,
2744                ],
2745                'parentId' => [
2746                  'location' => 'query',
2747                  'type' => 'string',
2748                ],
2749              ],
2750            ],'list' => [
2751              'path' => 'locations/global/operations',
2752              'httpMethod' => 'GET',
2753              'parameters' => [
2754                'filter' => [
2755                  'location' => 'query',
2756                  'type' => 'string',
2757                ],
2758                'maxResults' => [
2759                  'location' => 'query',
2760                  'type' => 'integer',
2761                ],
2762                'orderBy' => [
2763                  'location' => 'query',
2764                  'type' => 'string',
2765                ],
2766                'pageToken' => [
2767                  'location' => 'query',
2768                  'type' => 'string',
2769                ],
2770                'parentId' => [
2771                  'location' => 'query',
2772                  'type' => 'string',
2773                ],
2774                'returnPartialSuccess' => [
2775                  'location' => 'query',
2776                  'type' => 'boolean',
2777                ],
2778              ],
2779            ],
2780          ]
2781        ]
2782    );
2783    $this->globalPublicDelegatedPrefixes = new Compute\Resource\GlobalPublicDelegatedPrefixes(
2784        $this,
2785        $this->serviceName,
2786        'globalPublicDelegatedPrefixes',
2787        [
2788          'methods' => [
2789            'delete' => [
2790              'path' => 'projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}',
2791              'httpMethod' => 'DELETE',
2792              'parameters' => [
2793                'project' => [
2794                  'location' => 'path',
2795                  'type' => 'string',
2796                  'required' => true,
2797                ],
2798                'publicDelegatedPrefix' => [
2799                  'location' => 'path',
2800                  'type' => 'string',
2801                  'required' => true,
2802                ],
2803                'requestId' => [
2804                  'location' => 'query',
2805                  'type' => 'string',
2806                ],
2807              ],
2808            ],'get' => [
2809              'path' => 'projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}',
2810              'httpMethod' => 'GET',
2811              'parameters' => [
2812                'project' => [
2813                  'location' => 'path',
2814                  'type' => 'string',
2815                  'required' => true,
2816                ],
2817                'publicDelegatedPrefix' => [
2818                  'location' => 'path',
2819                  'type' => 'string',
2820                  'required' => true,
2821                ],
2822              ],
2823            ],'insert' => [
2824              'path' => 'projects/{project}/global/publicDelegatedPrefixes',
2825              'httpMethod' => 'POST',
2826              'parameters' => [
2827                'project' => [
2828                  'location' => 'path',
2829                  'type' => 'string',
2830                  'required' => true,
2831                ],
2832                'requestId' => [
2833                  'location' => 'query',
2834                  'type' => 'string',
2835                ],
2836              ],
2837            ],'list' => [
2838              'path' => 'projects/{project}/global/publicDelegatedPrefixes',
2839              'httpMethod' => 'GET',
2840              'parameters' => [
2841                'project' => [
2842                  'location' => 'path',
2843                  'type' => 'string',
2844                  'required' => true,
2845                ],
2846                'filter' => [
2847                  'location' => 'query',
2848                  'type' => 'string',
2849                ],
2850                'maxResults' => [
2851                  'location' => 'query',
2852                  'type' => 'integer',
2853                ],
2854                'orderBy' => [
2855                  'location' => 'query',
2856                  'type' => 'string',
2857                ],
2858                'pageToken' => [
2859                  'location' => 'query',
2860                  'type' => 'string',
2861                ],
2862                'returnPartialSuccess' => [
2863                  'location' => 'query',
2864                  'type' => 'boolean',
2865                ],
2866              ],
2867            ],'patch' => [
2868              'path' => 'projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}',
2869              'httpMethod' => 'PATCH',
2870              'parameters' => [
2871                'project' => [
2872                  'location' => 'path',
2873                  'type' => 'string',
2874                  'required' => true,
2875                ],
2876                'publicDelegatedPrefix' => [
2877                  'location' => 'path',
2878                  'type' => 'string',
2879                  'required' => true,
2880                ],
2881                'requestId' => [
2882                  'location' => 'query',
2883                  'type' => 'string',
2884                ],
2885              ],
2886            ],
2887          ]
2888        ]
2889    );
2890    $this->healthChecks = new Compute\Resource\HealthChecks(
2891        $this,
2892        $this->serviceName,
2893        'healthChecks',
2894        [
2895          'methods' => [
2896            'aggregatedList' => [
2897              'path' => 'projects/{project}/aggregated/healthChecks',
2898              'httpMethod' => 'GET',
2899              'parameters' => [
2900                'project' => [
2901                  'location' => 'path',
2902                  'type' => 'string',
2903                  'required' => true,
2904                ],
2905                'filter' => [
2906                  'location' => 'query',
2907                  'type' => 'string',
2908                ],
2909                'includeAllScopes' => [
2910                  'location' => 'query',
2911                  'type' => 'boolean',
2912                ],
2913                'maxResults' => [
2914                  'location' => 'query',
2915                  'type' => 'integer',
2916                ],
2917                'orderBy' => [
2918                  'location' => 'query',
2919                  'type' => 'string',
2920                ],
2921                'pageToken' => [
2922                  'location' => 'query',
2923                  'type' => 'string',
2924                ],
2925                'returnPartialSuccess' => [
2926                  'location' => 'query',
2927                  'type' => 'boolean',
2928                ],
2929              ],
2930            ],'delete' => [
2931              'path' => 'projects/{project}/global/healthChecks/{healthCheck}',
2932              'httpMethod' => 'DELETE',
2933              'parameters' => [
2934                'project' => [
2935                  'location' => 'path',
2936                  'type' => 'string',
2937                  'required' => true,
2938                ],
2939                'healthCheck' => [
2940                  'location' => 'path',
2941                  'type' => 'string',
2942                  'required' => true,
2943                ],
2944                'requestId' => [
2945                  'location' => 'query',
2946                  'type' => 'string',
2947                ],
2948              ],
2949            ],'get' => [
2950              'path' => 'projects/{project}/global/healthChecks/{healthCheck}',
2951              'httpMethod' => 'GET',
2952              'parameters' => [
2953                'project' => [
2954                  'location' => 'path',
2955                  'type' => 'string',
2956                  'required' => true,
2957                ],
2958                'healthCheck' => [
2959                  'location' => 'path',
2960                  'type' => 'string',
2961                  'required' => true,
2962                ],
2963              ],
2964            ],'insert' => [
2965              'path' => 'projects/{project}/global/healthChecks',
2966              'httpMethod' => 'POST',
2967              'parameters' => [
2968                'project' => [
2969                  'location' => 'path',
2970                  'type' => 'string',
2971                  'required' => true,
2972                ],
2973                'requestId' => [
2974                  'location' => 'query',
2975                  'type' => 'string',
2976                ],
2977              ],
2978            ],'list' => [
2979              'path' => 'projects/{project}/global/healthChecks',
2980              'httpMethod' => 'GET',
2981              'parameters' => [
2982                'project' => [
2983                  'location' => 'path',
2984                  'type' => 'string',
2985                  'required' => true,
2986                ],
2987                'filter' => [
2988                  'location' => 'query',
2989                  'type' => 'string',
2990                ],
2991                'maxResults' => [
2992                  'location' => 'query',
2993                  'type' => 'integer',
2994                ],
2995                'orderBy' => [
2996                  'location' => 'query',
2997                  'type' => 'string',
2998                ],
2999                'pageToken' => [
3000                  'location' => 'query',
3001                  'type' => 'string',
3002                ],
3003                'returnPartialSuccess' => [
3004                  'location' => 'query',
3005                  'type' => 'boolean',
3006                ],
3007              ],
3008            ],'patch' => [
3009              'path' => 'projects/{project}/global/healthChecks/{healthCheck}',
3010              'httpMethod' => 'PATCH',
3011              'parameters' => [
3012                'project' => [
3013                  'location' => 'path',
3014                  'type' => 'string',
3015                  'required' => true,
3016                ],
3017                'healthCheck' => [
3018                  'location' => 'path',
3019                  'type' => 'string',
3020                  'required' => true,
3021                ],
3022                'requestId' => [
3023                  'location' => 'query',
3024                  'type' => 'string',
3025                ],
3026              ],
3027            ],'update' => [
3028              'path' => 'projects/{project}/global/healthChecks/{healthCheck}',
3029              'httpMethod' => 'PUT',
3030              'parameters' => [
3031                'project' => [
3032                  'location' => 'path',
3033                  'type' => 'string',
3034                  'required' => true,
3035                ],
3036                'healthCheck' => [
3037                  'location' => 'path',
3038                  'type' => 'string',
3039                  'required' => true,
3040                ],
3041                'requestId' => [
3042                  'location' => 'query',
3043                  'type' => 'string',
3044                ],
3045              ],
3046            ],
3047          ]
3048        ]
3049    );
3050    $this->httpHealthChecks = new Compute\Resource\HttpHealthChecks(
3051        $this,
3052        $this->serviceName,
3053        'httpHealthChecks',
3054        [
3055          'methods' => [
3056            'delete' => [
3057              'path' => 'projects/{project}/global/httpHealthChecks/{httpHealthCheck}',
3058              'httpMethod' => 'DELETE',
3059              'parameters' => [
3060                'project' => [
3061                  'location' => 'path',
3062                  'type' => 'string',
3063                  'required' => true,
3064                ],
3065                'httpHealthCheck' => [
3066                  'location' => 'path',
3067                  'type' => 'string',
3068                  'required' => true,
3069                ],
3070                'requestId' => [
3071                  'location' => 'query',
3072                  'type' => 'string',
3073                ],
3074              ],
3075            ],'get' => [
3076              'path' => 'projects/{project}/global/httpHealthChecks/{httpHealthCheck}',
3077              'httpMethod' => 'GET',
3078              'parameters' => [
3079                'project' => [
3080                  'location' => 'path',
3081                  'type' => 'string',
3082                  'required' => true,
3083                ],
3084                'httpHealthCheck' => [
3085                  'location' => 'path',
3086                  'type' => 'string',
3087                  'required' => true,
3088                ],
3089              ],
3090            ],'insert' => [
3091              'path' => 'projects/{project}/global/httpHealthChecks',
3092              'httpMethod' => 'POST',
3093              'parameters' => [
3094                'project' => [
3095                  'location' => 'path',
3096                  'type' => 'string',
3097                  'required' => true,
3098                ],
3099                'requestId' => [
3100                  'location' => 'query',
3101                  'type' => 'string',
3102                ],
3103              ],
3104            ],'list' => [
3105              'path' => 'projects/{project}/global/httpHealthChecks',
3106              'httpMethod' => 'GET',
3107              'parameters' => [
3108                'project' => [
3109                  'location' => 'path',
3110                  'type' => 'string',
3111                  'required' => true,
3112                ],
3113                'filter' => [
3114                  'location' => 'query',
3115                  'type' => 'string',
3116                ],
3117                'maxResults' => [
3118                  'location' => 'query',
3119                  'type' => 'integer',
3120                ],
3121                'orderBy' => [
3122                  'location' => 'query',
3123                  'type' => 'string',
3124                ],
3125                'pageToken' => [
3126                  'location' => 'query',
3127                  'type' => 'string',
3128                ],
3129                'returnPartialSuccess' => [
3130                  'location' => 'query',
3131                  'type' => 'boolean',
3132                ],
3133              ],
3134            ],'patch' => [
3135              'path' => 'projects/{project}/global/httpHealthChecks/{httpHealthCheck}',
3136              'httpMethod' => 'PATCH',
3137              'parameters' => [
3138                'project' => [
3139                  'location' => 'path',
3140                  'type' => 'string',
3141                  'required' => true,
3142                ],
3143                'httpHealthCheck' => [
3144                  'location' => 'path',
3145                  'type' => 'string',
3146                  'required' => true,
3147                ],
3148                'requestId' => [
3149                  'location' => 'query',
3150                  'type' => 'string',
3151                ],
3152              ],
3153            ],'update' => [
3154              'path' => 'projects/{project}/global/httpHealthChecks/{httpHealthCheck}',
3155              'httpMethod' => 'PUT',
3156              'parameters' => [
3157                'project' => [
3158                  'location' => 'path',
3159                  'type' => 'string',
3160                  'required' => true,
3161                ],
3162                'httpHealthCheck' => [
3163                  'location' => 'path',
3164                  'type' => 'string',
3165                  'required' => true,
3166                ],
3167                'requestId' => [
3168                  'location' => 'query',
3169                  'type' => 'string',
3170                ],
3171              ],
3172            ],
3173          ]
3174        ]
3175    );
3176    $this->httpsHealthChecks = new Compute\Resource\HttpsHealthChecks(
3177        $this,
3178        $this->serviceName,
3179        'httpsHealthChecks',
3180        [
3181          'methods' => [
3182            'delete' => [
3183              'path' => 'projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}',
3184              'httpMethod' => 'DELETE',
3185              'parameters' => [
3186                'project' => [
3187                  'location' => 'path',
3188                  'type' => 'string',
3189                  'required' => true,
3190                ],
3191                'httpsHealthCheck' => [
3192                  'location' => 'path',
3193                  'type' => 'string',
3194                  'required' => true,
3195                ],
3196                'requestId' => [
3197                  'location' => 'query',
3198                  'type' => 'string',
3199                ],
3200              ],
3201            ],'get' => [
3202              'path' => 'projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}',
3203              'httpMethod' => 'GET',
3204              'parameters' => [
3205                'project' => [
3206                  'location' => 'path',
3207                  'type' => 'string',
3208                  'required' => true,
3209                ],
3210                'httpsHealthCheck' => [
3211                  'location' => 'path',
3212                  'type' => 'string',
3213                  'required' => true,
3214                ],
3215              ],
3216            ],'insert' => [
3217              'path' => 'projects/{project}/global/httpsHealthChecks',
3218              'httpMethod' => 'POST',
3219              'parameters' => [
3220                'project' => [
3221                  'location' => 'path',
3222                  'type' => 'string',
3223                  'required' => true,
3224                ],
3225                'requestId' => [
3226                  'location' => 'query',
3227                  'type' => 'string',
3228                ],
3229              ],
3230            ],'list' => [
3231              'path' => 'projects/{project}/global/httpsHealthChecks',
3232              'httpMethod' => 'GET',
3233              'parameters' => [
3234                'project' => [
3235                  'location' => 'path',
3236                  'type' => 'string',
3237                  'required' => true,
3238                ],
3239                'filter' => [
3240                  'location' => 'query',
3241                  'type' => 'string',
3242                ],
3243                'maxResults' => [
3244                  'location' => 'query',
3245                  'type' => 'integer',
3246                ],
3247                'orderBy' => [
3248                  'location' => 'query',
3249                  'type' => 'string',
3250                ],
3251                'pageToken' => [
3252                  'location' => 'query',
3253                  'type' => 'string',
3254                ],
3255                'returnPartialSuccess' => [
3256                  'location' => 'query',
3257                  'type' => 'boolean',
3258                ],
3259              ],
3260            ],'patch' => [
3261              'path' => 'projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}',
3262              'httpMethod' => 'PATCH',
3263              'parameters' => [
3264                'project' => [
3265                  'location' => 'path',
3266                  'type' => 'string',
3267                  'required' => true,
3268                ],
3269                'httpsHealthCheck' => [
3270                  'location' => 'path',
3271                  'type' => 'string',
3272                  'required' => true,
3273                ],
3274                'requestId' => [
3275                  'location' => 'query',
3276                  'type' => 'string',
3277                ],
3278              ],
3279            ],'update' => [
3280              'path' => 'projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}',
3281              'httpMethod' => 'PUT',
3282              'parameters' => [
3283                'project' => [
3284                  'location' => 'path',
3285                  'type' => 'string',
3286                  'required' => true,
3287                ],
3288                'httpsHealthCheck' => [
3289                  'location' => 'path',
3290                  'type' => 'string',
3291                  'required' => true,
3292                ],
3293                'requestId' => [
3294                  'location' => 'query',
3295                  'type' => 'string',
3296                ],
3297              ],
3298            ],
3299          ]
3300        ]
3301    );
3302    $this->imageFamilyViews = new Compute\Resource\ImageFamilyViews(
3303        $this,
3304        $this->serviceName,
3305        'imageFamilyViews',
3306        [
3307          'methods' => [
3308            'get' => [
3309              'path' => 'projects/{project}/zones/{zone}/imageFamilyViews/{family}',
3310              'httpMethod' => 'GET',
3311              'parameters' => [
3312                'project' => [
3313                  'location' => 'path',
3314                  'type' => 'string',
3315                  'required' => true,
3316                ],
3317                'zone' => [
3318                  'location' => 'path',
3319                  'type' => 'string',
3320                  'required' => true,
3321                ],
3322                'family' => [
3323                  'location' => 'path',
3324                  'type' => 'string',
3325                  'required' => true,
3326                ],
3327              ],
3328            ],
3329          ]
3330        ]
3331    );
3332    $this->images = new Compute\Resource\Images(
3333        $this,
3334        $this->serviceName,
3335        'images',
3336        [
3337          'methods' => [
3338            'delete' => [
3339              'path' => 'projects/{project}/global/images/{image}',
3340              'httpMethod' => 'DELETE',
3341              'parameters' => [
3342                'project' => [
3343                  'location' => 'path',
3344                  'type' => 'string',
3345                  'required' => true,
3346                ],
3347                'image' => [
3348                  'location' => 'path',
3349                  'type' => 'string',
3350                  'required' => true,
3351                ],
3352                'requestId' => [
3353                  'location' => 'query',
3354                  'type' => 'string',
3355                ],
3356              ],
3357            ],'deprecate' => [
3358              'path' => 'projects/{project}/global/images/{image}/deprecate',
3359              'httpMethod' => 'POST',
3360              'parameters' => [
3361                'project' => [
3362                  'location' => 'path',
3363                  'type' => 'string',
3364                  'required' => true,
3365                ],
3366                'image' => [
3367                  'location' => 'path',
3368                  'type' => 'string',
3369                  'required' => true,
3370                ],
3371                'requestId' => [
3372                  'location' => 'query',
3373                  'type' => 'string',
3374                ],
3375              ],
3376            ],'get' => [
3377              'path' => 'projects/{project}/global/images/{image}',
3378              'httpMethod' => 'GET',
3379              'parameters' => [
3380                'project' => [
3381                  'location' => 'path',
3382                  'type' => 'string',
3383                  'required' => true,
3384                ],
3385                'image' => [
3386                  'location' => 'path',
3387                  'type' => 'string',
3388                  'required' => true,
3389                ],
3390              ],
3391            ],'getFromFamily' => [
3392              'path' => 'projects/{project}/global/images/family/{family}',
3393              'httpMethod' => 'GET',
3394              'parameters' => [
3395                'project' => [
3396                  'location' => 'path',
3397                  'type' => 'string',
3398                  'required' => true,
3399                ],
3400                'family' => [
3401                  'location' => 'path',
3402                  'type' => 'string',
3403                  'required' => true,
3404                ],
3405              ],
3406            ],'getIamPolicy' => [
3407              'path' => 'projects/{project}/global/images/{resource}/getIamPolicy',
3408              'httpMethod' => 'GET',
3409              'parameters' => [
3410                'project' => [
3411                  'location' => 'path',
3412                  'type' => 'string',
3413                  'required' => true,
3414                ],
3415                'resource' => [
3416                  'location' => 'path',
3417                  'type' => 'string',
3418                  'required' => true,
3419                ],
3420                'optionsRequestedPolicyVersion' => [
3421                  'location' => 'query',
3422                  'type' => 'integer',
3423                ],
3424              ],
3425            ],'insert' => [
3426              'path' => 'projects/{project}/global/images',
3427              'httpMethod' => 'POST',
3428              'parameters' => [
3429                'project' => [
3430                  'location' => 'path',
3431                  'type' => 'string',
3432                  'required' => true,
3433                ],
3434                'forceCreate' => [
3435                  'location' => 'query',
3436                  'type' => 'boolean',
3437                ],
3438                'requestId' => [
3439                  'location' => 'query',
3440                  'type' => 'string',
3441                ],
3442              ],
3443            ],'list' => [
3444              'path' => 'projects/{project}/global/images',
3445              'httpMethod' => 'GET',
3446              'parameters' => [
3447                'project' => [
3448                  'location' => 'path',
3449                  'type' => 'string',
3450                  'required' => true,
3451                ],
3452                'filter' => [
3453                  'location' => 'query',
3454                  'type' => 'string',
3455                ],
3456                'maxResults' => [
3457                  'location' => 'query',
3458                  'type' => 'integer',
3459                ],
3460                'orderBy' => [
3461                  'location' => 'query',
3462                  'type' => 'string',
3463                ],
3464                'pageToken' => [
3465                  'location' => 'query',
3466                  'type' => 'string',
3467                ],
3468                'returnPartialSuccess' => [
3469                  'location' => 'query',
3470                  'type' => 'boolean',
3471                ],
3472              ],
3473            ],'patch' => [
3474              'path' => 'projects/{project}/global/images/{image}',
3475              'httpMethod' => 'PATCH',
3476              'parameters' => [
3477                'project' => [
3478                  'location' => 'path',
3479                  'type' => 'string',
3480                  'required' => true,
3481                ],
3482                'image' => [
3483                  'location' => 'path',
3484                  'type' => 'string',
3485                  'required' => true,
3486                ],
3487                'requestId' => [
3488                  'location' => 'query',
3489                  'type' => 'string',
3490                ],
3491              ],
3492            ],'setIamPolicy' => [
3493              'path' => 'projects/{project}/global/images/{resource}/setIamPolicy',
3494              'httpMethod' => 'POST',
3495              'parameters' => [
3496                'project' => [
3497                  'location' => 'path',
3498                  'type' => 'string',
3499                  'required' => true,
3500                ],
3501                'resource' => [
3502                  'location' => 'path',
3503                  'type' => 'string',
3504                  'required' => true,
3505                ],
3506              ],
3507            ],'setLabels' => [
3508              'path' => 'projects/{project}/global/images/{resource}/setLabels',
3509              'httpMethod' => 'POST',
3510              'parameters' => [
3511                'project' => [
3512                  'location' => 'path',
3513                  'type' => 'string',
3514                  'required' => true,
3515                ],
3516                'resource' => [
3517                  'location' => 'path',
3518                  'type' => 'string',
3519                  'required' => true,
3520                ],
3521              ],
3522            ],'testIamPermissions' => [
3523              'path' => 'projects/{project}/global/images/{resource}/testIamPermissions',
3524              'httpMethod' => 'POST',
3525              'parameters' => [
3526                'project' => [
3527                  'location' => 'path',
3528                  'type' => 'string',
3529                  'required' => true,
3530                ],
3531                'resource' => [
3532                  'location' => 'path',
3533                  'type' => 'string',
3534                  'required' => true,
3535                ],
3536              ],
3537            ],
3538          ]
3539        ]
3540    );
3541    $this->instanceGroupManagers = new Compute\Resource\InstanceGroupManagers(
3542        $this,
3543        $this->serviceName,
3544        'instanceGroupManagers',
3545        [
3546          'methods' => [
3547            'abandonInstances' => [
3548              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances',
3549              'httpMethod' => 'POST',
3550              'parameters' => [
3551                'project' => [
3552                  'location' => 'path',
3553                  'type' => 'string',
3554                  'required' => true,
3555                ],
3556                'zone' => [
3557                  'location' => 'path',
3558                  'type' => 'string',
3559                  'required' => true,
3560                ],
3561                'instanceGroupManager' => [
3562                  'location' => 'path',
3563                  'type' => 'string',
3564                  'required' => true,
3565                ],
3566                'requestId' => [
3567                  'location' => 'query',
3568                  'type' => 'string',
3569                ],
3570              ],
3571            ],'aggregatedList' => [
3572              'path' => 'projects/{project}/aggregated/instanceGroupManagers',
3573              'httpMethod' => 'GET',
3574              'parameters' => [
3575                'project' => [
3576                  'location' => 'path',
3577                  'type' => 'string',
3578                  'required' => true,
3579                ],
3580                'filter' => [
3581                  'location' => 'query',
3582                  'type' => 'string',
3583                ],
3584                'includeAllScopes' => [
3585                  'location' => 'query',
3586                  'type' => 'boolean',
3587                ],
3588                'maxResults' => [
3589                  'location' => 'query',
3590                  'type' => 'integer',
3591                ],
3592                'orderBy' => [
3593                  'location' => 'query',
3594                  'type' => 'string',
3595                ],
3596                'pageToken' => [
3597                  'location' => 'query',
3598                  'type' => 'string',
3599                ],
3600                'returnPartialSuccess' => [
3601                  'location' => 'query',
3602                  'type' => 'boolean',
3603                ],
3604              ],
3605            ],'applyUpdatesToInstances' => [
3606              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances',
3607              'httpMethod' => 'POST',
3608              'parameters' => [
3609                'project' => [
3610                  'location' => 'path',
3611                  'type' => 'string',
3612                  'required' => true,
3613                ],
3614                'zone' => [
3615                  'location' => 'path',
3616                  'type' => 'string',
3617                  'required' => true,
3618                ],
3619                'instanceGroupManager' => [
3620                  'location' => 'path',
3621                  'type' => 'string',
3622                  'required' => true,
3623                ],
3624              ],
3625            ],'createInstances' => [
3626              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances',
3627              'httpMethod' => 'POST',
3628              'parameters' => [
3629                'project' => [
3630                  'location' => 'path',
3631                  'type' => 'string',
3632                  'required' => true,
3633                ],
3634                'zone' => [
3635                  'location' => 'path',
3636                  'type' => 'string',
3637                  'required' => true,
3638                ],
3639                'instanceGroupManager' => [
3640                  'location' => 'path',
3641                  'type' => 'string',
3642                  'required' => true,
3643                ],
3644                'requestId' => [
3645                  'location' => 'query',
3646                  'type' => 'string',
3647                ],
3648              ],
3649            ],'delete' => [
3650              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}',
3651              'httpMethod' => 'DELETE',
3652              'parameters' => [
3653                'project' => [
3654                  'location' => 'path',
3655                  'type' => 'string',
3656                  'required' => true,
3657                ],
3658                'zone' => [
3659                  'location' => 'path',
3660                  'type' => 'string',
3661                  'required' => true,
3662                ],
3663                'instanceGroupManager' => [
3664                  'location' => 'path',
3665                  'type' => 'string',
3666                  'required' => true,
3667                ],
3668                'requestId' => [
3669                  'location' => 'query',
3670                  'type' => 'string',
3671                ],
3672              ],
3673            ],'deleteInstances' => [
3674              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances',
3675              'httpMethod' => 'POST',
3676              'parameters' => [
3677                'project' => [
3678                  'location' => 'path',
3679                  'type' => 'string',
3680                  'required' => true,
3681                ],
3682                'zone' => [
3683                  'location' => 'path',
3684                  'type' => 'string',
3685                  'required' => true,
3686                ],
3687                'instanceGroupManager' => [
3688                  'location' => 'path',
3689                  'type' => 'string',
3690                  'required' => true,
3691                ],
3692                'requestId' => [
3693                  'location' => 'query',
3694                  'type' => 'string',
3695                ],
3696              ],
3697            ],'deletePerInstanceConfigs' => [
3698              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs',
3699              'httpMethod' => 'POST',
3700              'parameters' => [
3701                'project' => [
3702                  'location' => 'path',
3703                  'type' => 'string',
3704                  'required' => true,
3705                ],
3706                'zone' => [
3707                  'location' => 'path',
3708                  'type' => 'string',
3709                  'required' => true,
3710                ],
3711                'instanceGroupManager' => [
3712                  'location' => 'path',
3713                  'type' => 'string',
3714                  'required' => true,
3715                ],
3716              ],
3717            ],'get' => [
3718              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}',
3719              'httpMethod' => 'GET',
3720              'parameters' => [
3721                'project' => [
3722                  'location' => 'path',
3723                  'type' => 'string',
3724                  'required' => true,
3725                ],
3726                'zone' => [
3727                  'location' => 'path',
3728                  'type' => 'string',
3729                  'required' => true,
3730                ],
3731                'instanceGroupManager' => [
3732                  'location' => 'path',
3733                  'type' => 'string',
3734                  'required' => true,
3735                ],
3736              ],
3737            ],'insert' => [
3738              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers',
3739              'httpMethod' => 'POST',
3740              'parameters' => [
3741                'project' => [
3742                  'location' => 'path',
3743                  'type' => 'string',
3744                  'required' => true,
3745                ],
3746                'zone' => [
3747                  'location' => 'path',
3748                  'type' => 'string',
3749                  'required' => true,
3750                ],
3751                'requestId' => [
3752                  'location' => 'query',
3753                  'type' => 'string',
3754                ],
3755              ],
3756            ],'list' => [
3757              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers',
3758              'httpMethod' => 'GET',
3759              'parameters' => [
3760                'project' => [
3761                  'location' => 'path',
3762                  'type' => 'string',
3763                  'required' => true,
3764                ],
3765                'zone' => [
3766                  'location' => 'path',
3767                  'type' => 'string',
3768                  'required' => true,
3769                ],
3770                'filter' => [
3771                  'location' => 'query',
3772                  'type' => 'string',
3773                ],
3774                'maxResults' => [
3775                  'location' => 'query',
3776                  'type' => 'integer',
3777                ],
3778                'orderBy' => [
3779                  'location' => 'query',
3780                  'type' => 'string',
3781                ],
3782                'pageToken' => [
3783                  'location' => 'query',
3784                  'type' => 'string',
3785                ],
3786                'returnPartialSuccess' => [
3787                  'location' => 'query',
3788                  'type' => 'boolean',
3789                ],
3790              ],
3791            ],'listErrors' => [
3792              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors',
3793              'httpMethod' => 'GET',
3794              'parameters' => [
3795                'project' => [
3796                  'location' => 'path',
3797                  'type' => 'string',
3798                  'required' => true,
3799                ],
3800                'zone' => [
3801                  'location' => 'path',
3802                  'type' => 'string',
3803                  'required' => true,
3804                ],
3805                'instanceGroupManager' => [
3806                  'location' => 'path',
3807                  'type' => 'string',
3808                  'required' => true,
3809                ],
3810                'filter' => [
3811                  'location' => 'query',
3812                  'type' => 'string',
3813                ],
3814                'maxResults' => [
3815                  'location' => 'query',
3816                  'type' => 'integer',
3817                ],
3818                'orderBy' => [
3819                  'location' => 'query',
3820                  'type' => 'string',
3821                ],
3822                'pageToken' => [
3823                  'location' => 'query',
3824                  'type' => 'string',
3825                ],
3826                'returnPartialSuccess' => [
3827                  'location' => 'query',
3828                  'type' => 'boolean',
3829                ],
3830              ],
3831            ],'listManagedInstances' => [
3832              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances',
3833              'httpMethod' => 'POST',
3834              'parameters' => [
3835                'project' => [
3836                  'location' => 'path',
3837                  'type' => 'string',
3838                  'required' => true,
3839                ],
3840                'zone' => [
3841                  'location' => 'path',
3842                  'type' => 'string',
3843                  'required' => true,
3844                ],
3845                'instanceGroupManager' => [
3846                  'location' => 'path',
3847                  'type' => 'string',
3848                  'required' => true,
3849                ],
3850                'filter' => [
3851                  'location' => 'query',
3852                  'type' => 'string',
3853                ],
3854                'maxResults' => [
3855                  'location' => 'query',
3856                  'type' => 'integer',
3857                ],
3858                'orderBy' => [
3859                  'location' => 'query',
3860                  'type' => 'string',
3861                ],
3862                'pageToken' => [
3863                  'location' => 'query',
3864                  'type' => 'string',
3865                ],
3866                'returnPartialSuccess' => [
3867                  'location' => 'query',
3868                  'type' => 'boolean',
3869                ],
3870              ],
3871            ],'listPerInstanceConfigs' => [
3872              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs',
3873              'httpMethod' => 'POST',
3874              'parameters' => [
3875                'project' => [
3876                  'location' => 'path',
3877                  'type' => 'string',
3878                  'required' => true,
3879                ],
3880                'zone' => [
3881                  'location' => 'path',
3882                  'type' => 'string',
3883                  'required' => true,
3884                ],
3885                'instanceGroupManager' => [
3886                  'location' => 'path',
3887                  'type' => 'string',
3888                  'required' => true,
3889                ],
3890                'filter' => [
3891                  'location' => 'query',
3892                  'type' => 'string',
3893                ],
3894                'maxResults' => [
3895                  'location' => 'query',
3896                  'type' => 'integer',
3897                ],
3898                'orderBy' => [
3899                  'location' => 'query',
3900                  'type' => 'string',
3901                ],
3902                'pageToken' => [
3903                  'location' => 'query',
3904                  'type' => 'string',
3905                ],
3906                'returnPartialSuccess' => [
3907                  'location' => 'query',
3908                  'type' => 'boolean',
3909                ],
3910              ],
3911            ],'patch' => [
3912              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}',
3913              'httpMethod' => 'PATCH',
3914              'parameters' => [
3915                'project' => [
3916                  'location' => 'path',
3917                  'type' => 'string',
3918                  'required' => true,
3919                ],
3920                'zone' => [
3921                  'location' => 'path',
3922                  'type' => 'string',
3923                  'required' => true,
3924                ],
3925                'instanceGroupManager' => [
3926                  'location' => 'path',
3927                  'type' => 'string',
3928                  'required' => true,
3929                ],
3930                'requestId' => [
3931                  'location' => 'query',
3932                  'type' => 'string',
3933                ],
3934              ],
3935            ],'patchPerInstanceConfigs' => [
3936              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs',
3937              'httpMethod' => 'POST',
3938              'parameters' => [
3939                'project' => [
3940                  'location' => 'path',
3941                  'type' => 'string',
3942                  'required' => true,
3943                ],
3944                'zone' => [
3945                  'location' => 'path',
3946                  'type' => 'string',
3947                  'required' => true,
3948                ],
3949                'instanceGroupManager' => [
3950                  'location' => 'path',
3951                  'type' => 'string',
3952                  'required' => true,
3953                ],
3954                'requestId' => [
3955                  'location' => 'query',
3956                  'type' => 'string',
3957                ],
3958              ],
3959            ],'recreateInstances' => [
3960              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances',
3961              'httpMethod' => 'POST',
3962              'parameters' => [
3963                'project' => [
3964                  'location' => 'path',
3965                  'type' => 'string',
3966                  'required' => true,
3967                ],
3968                'zone' => [
3969                  'location' => 'path',
3970                  'type' => 'string',
3971                  'required' => true,
3972                ],
3973                'instanceGroupManager' => [
3974                  'location' => 'path',
3975                  'type' => 'string',
3976                  'required' => true,
3977                ],
3978                'requestId' => [
3979                  'location' => 'query',
3980                  'type' => 'string',
3981                ],
3982              ],
3983            ],'resize' => [
3984              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize',
3985              'httpMethod' => 'POST',
3986              'parameters' => [
3987                'project' => [
3988                  'location' => 'path',
3989                  'type' => 'string',
3990                  'required' => true,
3991                ],
3992                'zone' => [
3993                  'location' => 'path',
3994                  'type' => 'string',
3995                  'required' => true,
3996                ],
3997                'instanceGroupManager' => [
3998                  'location' => 'path',
3999                  'type' => 'string',
4000                  'required' => true,
4001                ],
4002                'size' => [
4003                  'location' => 'query',
4004                  'type' => 'integer',
4005                  'required' => true,
4006                ],
4007                'requestId' => [
4008                  'location' => 'query',
4009                  'type' => 'string',
4010                ],
4011              ],
4012            ],'setInstanceTemplate' => [
4013              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate',
4014              'httpMethod' => 'POST',
4015              'parameters' => [
4016                'project' => [
4017                  'location' => 'path',
4018                  'type' => 'string',
4019                  'required' => true,
4020                ],
4021                'zone' => [
4022                  'location' => 'path',
4023                  'type' => 'string',
4024                  'required' => true,
4025                ],
4026                'instanceGroupManager' => [
4027                  'location' => 'path',
4028                  'type' => 'string',
4029                  'required' => true,
4030                ],
4031                'requestId' => [
4032                  'location' => 'query',
4033                  'type' => 'string',
4034                ],
4035              ],
4036            ],'setTargetPools' => [
4037              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools',
4038              'httpMethod' => 'POST',
4039              'parameters' => [
4040                'project' => [
4041                  'location' => 'path',
4042                  'type' => 'string',
4043                  'required' => true,
4044                ],
4045                'zone' => [
4046                  'location' => 'path',
4047                  'type' => 'string',
4048                  'required' => true,
4049                ],
4050                'instanceGroupManager' => [
4051                  'location' => 'path',
4052                  'type' => 'string',
4053                  'required' => true,
4054                ],
4055                'requestId' => [
4056                  'location' => 'query',
4057                  'type' => 'string',
4058                ],
4059              ],
4060            ],'updatePerInstanceConfigs' => [
4061              'path' => 'projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs',
4062              'httpMethod' => 'POST',
4063              'parameters' => [
4064                'project' => [
4065                  'location' => 'path',
4066                  'type' => 'string',
4067                  'required' => true,
4068                ],
4069                'zone' => [
4070                  'location' => 'path',
4071                  'type' => 'string',
4072                  'required' => true,
4073                ],
4074                'instanceGroupManager' => [
4075                  'location' => 'path',
4076                  'type' => 'string',
4077                  'required' => true,
4078                ],
4079                'requestId' => [
4080                  'location' => 'query',
4081                  'type' => 'string',
4082                ],
4083              ],
4084            ],
4085          ]
4086        ]
4087    );
4088    $this->instanceGroups = new Compute\Resource\InstanceGroups(
4089        $this,
4090        $this->serviceName,
4091        'instanceGroups',
4092        [
4093          'methods' => [
4094            'addInstances' => [
4095              'path' => 'projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances',
4096              'httpMethod' => 'POST',
4097              'parameters' => [
4098                'project' => [
4099                  'location' => 'path',
4100                  'type' => 'string',
4101                  'required' => true,
4102                ],
4103                'zone' => [
4104                  'location' => 'path',
4105                  'type' => 'string',
4106                  'required' => true,
4107                ],
4108                'instanceGroup' => [
4109                  'location' => 'path',
4110                  'type' => 'string',
4111                  'required' => true,
4112                ],
4113                'requestId' => [
4114                  'location' => 'query',
4115                  'type' => 'string',
4116                ],
4117              ],
4118            ],'aggregatedList' => [
4119              'path' => 'projects/{project}/aggregated/instanceGroups',
4120              'httpMethod' => 'GET',
4121              'parameters' => [
4122                'project' => [
4123                  'location' => 'path',
4124                  'type' => 'string',
4125                  'required' => true,
4126                ],
4127                'filter' => [
4128                  'location' => 'query',
4129                  'type' => 'string',
4130                ],
4131                'includeAllScopes' => [
4132                  'location' => 'query',
4133                  'type' => 'boolean',
4134                ],
4135                'maxResults' => [
4136                  'location' => 'query',
4137                  'type' => 'integer',
4138                ],
4139                'orderBy' => [
4140                  'location' => 'query',
4141                  'type' => 'string',
4142                ],
4143                'pageToken' => [
4144                  'location' => 'query',
4145                  'type' => 'string',
4146                ],
4147                'returnPartialSuccess' => [
4148                  'location' => 'query',
4149                  'type' => 'boolean',
4150                ],
4151              ],
4152            ],'delete' => [
4153              'path' => 'projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}',
4154              'httpMethod' => 'DELETE',
4155              'parameters' => [
4156                'project' => [
4157                  'location' => 'path',
4158                  'type' => 'string',
4159                  'required' => true,
4160                ],
4161                'zone' => [
4162                  'location' => 'path',
4163                  'type' => 'string',
4164                  'required' => true,
4165                ],
4166                'instanceGroup' => [
4167                  'location' => 'path',
4168                  'type' => 'string',
4169                  'required' => true,
4170                ],
4171                'requestId' => [
4172                  'location' => 'query',
4173                  'type' => 'string',
4174                ],
4175              ],
4176            ],'get' => [
4177              'path' => 'projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}',
4178              'httpMethod' => 'GET',
4179              'parameters' => [
4180                'project' => [
4181                  'location' => 'path',
4182                  'type' => 'string',
4183                  'required' => true,
4184                ],
4185                'zone' => [
4186                  'location' => 'path',
4187                  'type' => 'string',
4188                  'required' => true,
4189                ],
4190                'instanceGroup' => [
4191                  'location' => 'path',
4192                  'type' => 'string',
4193                  'required' => true,
4194                ],
4195              ],
4196            ],'insert' => [
4197              'path' => 'projects/{project}/zones/{zone}/instanceGroups',
4198              'httpMethod' => 'POST',
4199              'parameters' => [
4200                'project' => [
4201                  'location' => 'path',
4202                  'type' => 'string',
4203                  'required' => true,
4204                ],
4205                'zone' => [
4206                  'location' => 'path',
4207                  'type' => 'string',
4208                  'required' => true,
4209                ],
4210                'requestId' => [
4211                  'location' => 'query',
4212                  'type' => 'string',
4213                ],
4214              ],
4215            ],'list' => [
4216              'path' => 'projects/{project}/zones/{zone}/instanceGroups',
4217              'httpMethod' => 'GET',
4218              'parameters' => [
4219                'project' => [
4220                  'location' => 'path',
4221                  'type' => 'string',
4222                  'required' => true,
4223                ],
4224                'zone' => [
4225                  'location' => 'path',
4226                  'type' => 'string',
4227                  'required' => true,
4228                ],
4229                'filter' => [
4230                  'location' => 'query',
4231                  'type' => 'string',
4232                ],
4233                'maxResults' => [
4234                  'location' => 'query',
4235                  'type' => 'integer',
4236                ],
4237                'orderBy' => [
4238                  'location' => 'query',
4239                  'type' => 'string',
4240                ],
4241                'pageToken' => [
4242                  'location' => 'query',
4243                  'type' => 'string',
4244                ],
4245                'returnPartialSuccess' => [
4246                  'location' => 'query',
4247                  'type' => 'boolean',
4248                ],
4249              ],
4250            ],'listInstances' => [
4251              'path' => 'projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances',
4252              'httpMethod' => 'POST',
4253              'parameters' => [
4254                'project' => [
4255                  'location' => 'path',
4256                  'type' => 'string',
4257                  'required' => true,
4258                ],
4259                'zone' => [
4260                  'location' => 'path',
4261                  'type' => 'string',
4262                  'required' => true,
4263                ],
4264                'instanceGroup' => [
4265                  'location' => 'path',
4266                  'type' => 'string',
4267                  'required' => true,
4268                ],
4269                'filter' => [
4270                  'location' => 'query',
4271                  'type' => 'string',
4272                ],
4273                'maxResults' => [
4274                  'location' => 'query',
4275                  'type' => 'integer',
4276                ],
4277                'orderBy' => [
4278                  'location' => 'query',
4279                  'type' => 'string',
4280                ],
4281                'pageToken' => [
4282                  'location' => 'query',
4283                  'type' => 'string',
4284                ],
4285                'returnPartialSuccess' => [
4286                  'location' => 'query',
4287                  'type' => 'boolean',
4288                ],
4289              ],
4290            ],'removeInstances' => [
4291              'path' => 'projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances',
4292              'httpMethod' => 'POST',
4293              'parameters' => [
4294                'project' => [
4295                  'location' => 'path',
4296                  'type' => 'string',
4297                  'required' => true,
4298                ],
4299                'zone' => [
4300                  'location' => 'path',
4301                  'type' => 'string',
4302                  'required' => true,
4303                ],
4304                'instanceGroup' => [
4305                  'location' => 'path',
4306                  'type' => 'string',
4307                  'required' => true,
4308                ],
4309                'requestId' => [
4310                  'location' => 'query',
4311                  'type' => 'string',
4312                ],
4313              ],
4314            ],'setNamedPorts' => [
4315              'path' => 'projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts',
4316              'httpMethod' => 'POST',
4317              'parameters' => [
4318                'project' => [
4319                  'location' => 'path',
4320                  'type' => 'string',
4321                  'required' => true,
4322                ],
4323                'zone' => [
4324                  'location' => 'path',
4325                  'type' => 'string',
4326                  'required' => true,
4327                ],
4328                'instanceGroup' => [
4329                  'location' => 'path',
4330                  'type' => 'string',
4331                  'required' => true,
4332                ],
4333                'requestId' => [
4334                  'location' => 'query',
4335                  'type' => 'string',
4336                ],
4337              ],
4338            ],
4339          ]
4340        ]
4341    );
4342    $this->instanceTemplates = new Compute\Resource\InstanceTemplates(
4343        $this,
4344        $this->serviceName,
4345        'instanceTemplates',
4346        [
4347          'methods' => [
4348            'delete' => [
4349              'path' => 'projects/{project}/global/instanceTemplates/{instanceTemplate}',
4350              'httpMethod' => 'DELETE',
4351              'parameters' => [
4352                'project' => [
4353                  'location' => 'path',
4354                  'type' => 'string',
4355                  'required' => true,
4356                ],
4357                'instanceTemplate' => [
4358                  'location' => 'path',
4359                  'type' => 'string',
4360                  'required' => true,
4361                ],
4362                'requestId' => [
4363                  'location' => 'query',
4364                  'type' => 'string',
4365                ],
4366              ],
4367            ],'get' => [
4368              'path' => 'projects/{project}/global/instanceTemplates/{instanceTemplate}',
4369              'httpMethod' => 'GET',
4370              'parameters' => [
4371                'project' => [
4372                  'location' => 'path',
4373                  'type' => 'string',
4374                  'required' => true,
4375                ],
4376                'instanceTemplate' => [
4377                  'location' => 'path',
4378                  'type' => 'string',
4379                  'required' => true,
4380                ],
4381              ],
4382            ],'getIamPolicy' => [
4383              'path' => 'projects/{project}/global/instanceTemplates/{resource}/getIamPolicy',
4384              'httpMethod' => 'GET',
4385              'parameters' => [
4386                'project' => [
4387                  'location' => 'path',
4388                  'type' => 'string',
4389                  'required' => true,
4390                ],
4391                'resource' => [
4392                  'location' => 'path',
4393                  'type' => 'string',
4394                  'required' => true,
4395                ],
4396                'optionsRequestedPolicyVersion' => [
4397                  'location' => 'query',
4398                  'type' => 'integer',
4399                ],
4400              ],
4401            ],'insert' => [
4402              'path' => 'projects/{project}/global/instanceTemplates',
4403              'httpMethod' => 'POST',
4404              'parameters' => [
4405                'project' => [
4406                  'location' => 'path',
4407                  'type' => 'string',
4408                  'required' => true,
4409                ],
4410                'requestId' => [
4411                  'location' => 'query',
4412                  'type' => 'string',
4413                ],
4414              ],
4415            ],'list' => [
4416              'path' => 'projects/{project}/global/instanceTemplates',
4417              'httpMethod' => 'GET',
4418              'parameters' => [
4419                'project' => [
4420                  'location' => 'path',
4421                  'type' => 'string',
4422                  'required' => true,
4423                ],
4424                'filter' => [
4425                  'location' => 'query',
4426                  'type' => 'string',
4427                ],
4428                'maxResults' => [
4429                  'location' => 'query',
4430                  'type' => 'integer',
4431                ],
4432                'orderBy' => [
4433                  'location' => 'query',
4434                  'type' => 'string',
4435                ],
4436                'pageToken' => [
4437                  'location' => 'query',
4438                  'type' => 'string',
4439                ],
4440                'returnPartialSuccess' => [
4441                  'location' => 'query',
4442                  'type' => 'boolean',
4443                ],
4444              ],
4445            ],'setIamPolicy' => [
4446              'path' => 'projects/{project}/global/instanceTemplates/{resource}/setIamPolicy',
4447              'httpMethod' => 'POST',
4448              'parameters' => [
4449                'project' => [
4450                  'location' => 'path',
4451                  'type' => 'string',
4452                  'required' => true,
4453                ],
4454                'resource' => [
4455                  'location' => 'path',
4456                  'type' => 'string',
4457                  'required' => true,
4458                ],
4459              ],
4460            ],'testIamPermissions' => [
4461              'path' => 'projects/{project}/global/instanceTemplates/{resource}/testIamPermissions',
4462              'httpMethod' => 'POST',
4463              'parameters' => [
4464                'project' => [
4465                  'location' => 'path',
4466                  'type' => 'string',
4467                  'required' => true,
4468                ],
4469                'resource' => [
4470                  'location' => 'path',
4471                  'type' => 'string',
4472                  'required' => true,
4473                ],
4474              ],
4475            ],
4476          ]
4477        ]
4478    );
4479    $this->instances = new Compute\Resource\Instances(
4480        $this,
4481        $this->serviceName,
4482        'instances',
4483        [
4484          'methods' => [
4485            'addAccessConfig' => [
4486              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig',
4487              'httpMethod' => 'POST',
4488              'parameters' => [
4489                'project' => [
4490                  'location' => 'path',
4491                  'type' => 'string',
4492                  'required' => true,
4493                ],
4494                'zone' => [
4495                  'location' => 'path',
4496                  'type' => 'string',
4497                  'required' => true,
4498                ],
4499                'instance' => [
4500                  'location' => 'path',
4501                  'type' => 'string',
4502                  'required' => true,
4503                ],
4504                'networkInterface' => [
4505                  'location' => 'query',
4506                  'type' => 'string',
4507                  'required' => true,
4508                ],
4509                'requestId' => [
4510                  'location' => 'query',
4511                  'type' => 'string',
4512                ],
4513              ],
4514            ],'addResourcePolicies' => [
4515              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies',
4516              'httpMethod' => 'POST',
4517              'parameters' => [
4518                'project' => [
4519                  'location' => 'path',
4520                  'type' => 'string',
4521                  'required' => true,
4522                ],
4523                'zone' => [
4524                  'location' => 'path',
4525                  'type' => 'string',
4526                  'required' => true,
4527                ],
4528                'instance' => [
4529                  'location' => 'path',
4530                  'type' => 'string',
4531                  'required' => true,
4532                ],
4533                'requestId' => [
4534                  'location' => 'query',
4535                  'type' => 'string',
4536                ],
4537              ],
4538            ],'aggregatedList' => [
4539              'path' => 'projects/{project}/aggregated/instances',
4540              'httpMethod' => 'GET',
4541              'parameters' => [
4542                'project' => [
4543                  'location' => 'path',
4544                  'type' => 'string',
4545                  'required' => true,
4546                ],
4547                'filter' => [
4548                  'location' => 'query',
4549                  'type' => 'string',
4550                ],
4551                'includeAllScopes' => [
4552                  'location' => 'query',
4553                  'type' => 'boolean',
4554                ],
4555                'maxResults' => [
4556                  'location' => 'query',
4557                  'type' => 'integer',
4558                ],
4559                'orderBy' => [
4560                  'location' => 'query',
4561                  'type' => 'string',
4562                ],
4563                'pageToken' => [
4564                  'location' => 'query',
4565                  'type' => 'string',
4566                ],
4567                'returnPartialSuccess' => [
4568                  'location' => 'query',
4569                  'type' => 'boolean',
4570                ],
4571              ],
4572            ],'attachDisk' => [
4573              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/attachDisk',
4574              'httpMethod' => 'POST',
4575              'parameters' => [
4576                'project' => [
4577                  'location' => 'path',
4578                  'type' => 'string',
4579                  'required' => true,
4580                ],
4581                'zone' => [
4582                  'location' => 'path',
4583                  'type' => 'string',
4584                  'required' => true,
4585                ],
4586                'instance' => [
4587                  'location' => 'path',
4588                  'type' => 'string',
4589                  'required' => true,
4590                ],
4591                'forceAttach' => [
4592                  'location' => 'query',
4593                  'type' => 'boolean',
4594                ],
4595                'requestId' => [
4596                  'location' => 'query',
4597                  'type' => 'string',
4598                ],
4599              ],
4600            ],'bulkInsert' => [
4601              'path' => 'projects/{project}/zones/{zone}/instances/bulkInsert',
4602              'httpMethod' => 'POST',
4603              'parameters' => [
4604                'project' => [
4605                  'location' => 'path',
4606                  'type' => 'string',
4607                  'required' => true,
4608                ],
4609                'zone' => [
4610                  'location' => 'path',
4611                  'type' => 'string',
4612                  'required' => true,
4613                ],
4614                'requestId' => [
4615                  'location' => 'query',
4616                  'type' => 'string',
4617                ],
4618              ],
4619            ],'delete' => [
4620              'path' => 'projects/{project}/zones/{zone}/instances/{instance}',
4621              'httpMethod' => 'DELETE',
4622              'parameters' => [
4623                'project' => [
4624                  'location' => 'path',
4625                  'type' => 'string',
4626                  'required' => true,
4627                ],
4628                'zone' => [
4629                  'location' => 'path',
4630                  'type' => 'string',
4631                  'required' => true,
4632                ],
4633                'instance' => [
4634                  'location' => 'path',
4635                  'type' => 'string',
4636                  'required' => true,
4637                ],
4638                'requestId' => [
4639                  'location' => 'query',
4640                  'type' => 'string',
4641                ],
4642              ],
4643            ],'deleteAccessConfig' => [
4644              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig',
4645              'httpMethod' => 'POST',
4646              'parameters' => [
4647                'project' => [
4648                  'location' => 'path',
4649                  'type' => 'string',
4650                  'required' => true,
4651                ],
4652                'zone' => [
4653                  'location' => 'path',
4654                  'type' => 'string',
4655                  'required' => true,
4656                ],
4657                'instance' => [
4658                  'location' => 'path',
4659                  'type' => 'string',
4660                  'required' => true,
4661                ],
4662                'accessConfig' => [
4663                  'location' => 'query',
4664                  'type' => 'string',
4665                  'required' => true,
4666                ],
4667                'networkInterface' => [
4668                  'location' => 'query',
4669                  'type' => 'string',
4670                  'required' => true,
4671                ],
4672                'requestId' => [
4673                  'location' => 'query',
4674                  'type' => 'string',
4675                ],
4676              ],
4677            ],'detachDisk' => [
4678              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/detachDisk',
4679              'httpMethod' => 'POST',
4680              'parameters' => [
4681                'project' => [
4682                  'location' => 'path',
4683                  'type' => 'string',
4684                  'required' => true,
4685                ],
4686                'zone' => [
4687                  'location' => 'path',
4688                  'type' => 'string',
4689                  'required' => true,
4690                ],
4691                'instance' => [
4692                  'location' => 'path',
4693                  'type' => 'string',
4694                  'required' => true,
4695                ],
4696                'deviceName' => [
4697                  'location' => 'query',
4698                  'type' => 'string',
4699                  'required' => true,
4700                ],
4701                'requestId' => [
4702                  'location' => 'query',
4703                  'type' => 'string',
4704                ],
4705              ],
4706            ],'get' => [
4707              'path' => 'projects/{project}/zones/{zone}/instances/{instance}',
4708              'httpMethod' => 'GET',
4709              'parameters' => [
4710                'project' => [
4711                  'location' => 'path',
4712                  'type' => 'string',
4713                  'required' => true,
4714                ],
4715                'zone' => [
4716                  'location' => 'path',
4717                  'type' => 'string',
4718                  'required' => true,
4719                ],
4720                'instance' => [
4721                  'location' => 'path',
4722                  'type' => 'string',
4723                  'required' => true,
4724                ],
4725              ],
4726            ],'getEffectiveFirewalls' => [
4727              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls',
4728              'httpMethod' => 'GET',
4729              'parameters' => [
4730                'project' => [
4731                  'location' => 'path',
4732                  'type' => 'string',
4733                  'required' => true,
4734                ],
4735                'zone' => [
4736                  'location' => 'path',
4737                  'type' => 'string',
4738                  'required' => true,
4739                ],
4740                'instance' => [
4741                  'location' => 'path',
4742                  'type' => 'string',
4743                  'required' => true,
4744                ],
4745                'networkInterface' => [
4746                  'location' => 'query',
4747                  'type' => 'string',
4748                  'required' => true,
4749                ],
4750              ],
4751            ],'getGuestAttributes' => [
4752              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes',
4753              'httpMethod' => 'GET',
4754              'parameters' => [
4755                'project' => [
4756                  'location' => 'path',
4757                  'type' => 'string',
4758                  'required' => true,
4759                ],
4760                'zone' => [
4761                  'location' => 'path',
4762                  'type' => 'string',
4763                  'required' => true,
4764                ],
4765                'instance' => [
4766                  'location' => 'path',
4767                  'type' => 'string',
4768                  'required' => true,
4769                ],
4770                'queryPath' => [
4771                  'location' => 'query',
4772                  'type' => 'string',
4773                ],
4774                'variableKey' => [
4775                  'location' => 'query',
4776                  'type' => 'string',
4777                ],
4778              ],
4779            ],'getIamPolicy' => [
4780              'path' => 'projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy',
4781              'httpMethod' => 'GET',
4782              'parameters' => [
4783                'project' => [
4784                  'location' => 'path',
4785                  'type' => 'string',
4786                  'required' => true,
4787                ],
4788                'zone' => [
4789                  'location' => 'path',
4790                  'type' => 'string',
4791                  'required' => true,
4792                ],
4793                'resource' => [
4794                  'location' => 'path',
4795                  'type' => 'string',
4796                  'required' => true,
4797                ],
4798                'optionsRequestedPolicyVersion' => [
4799                  'location' => 'query',
4800                  'type' => 'integer',
4801                ],
4802              ],
4803            ],'getScreenshot' => [
4804              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/screenshot',
4805              'httpMethod' => 'GET',
4806              'parameters' => [
4807                'project' => [
4808                  'location' => 'path',
4809                  'type' => 'string',
4810                  'required' => true,
4811                ],
4812                'zone' => [
4813                  'location' => 'path',
4814                  'type' => 'string',
4815                  'required' => true,
4816                ],
4817                'instance' => [
4818                  'location' => 'path',
4819                  'type' => 'string',
4820                  'required' => true,
4821                ],
4822              ],
4823            ],'getSerialPortOutput' => [
4824              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/serialPort',
4825              'httpMethod' => 'GET',
4826              'parameters' => [
4827                'project' => [
4828                  'location' => 'path',
4829                  'type' => 'string',
4830                  'required' => true,
4831                ],
4832                'zone' => [
4833                  'location' => 'path',
4834                  'type' => 'string',
4835                  'required' => true,
4836                ],
4837                'instance' => [
4838                  'location' => 'path',
4839                  'type' => 'string',
4840                  'required' => true,
4841                ],
4842                'port' => [
4843                  'location' => 'query',
4844                  'type' => 'integer',
4845                ],
4846                'start' => [
4847                  'location' => 'query',
4848                  'type' => 'string',
4849                ],
4850              ],
4851            ],'getShieldedInstanceIdentity' => [
4852              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity',
4853              'httpMethod' => 'GET',
4854              'parameters' => [
4855                'project' => [
4856                  'location' => 'path',
4857                  'type' => 'string',
4858                  'required' => true,
4859                ],
4860                'zone' => [
4861                  'location' => 'path',
4862                  'type' => 'string',
4863                  'required' => true,
4864                ],
4865                'instance' => [
4866                  'location' => 'path',
4867                  'type' => 'string',
4868                  'required' => true,
4869                ],
4870              ],
4871            ],'insert' => [
4872              'path' => 'projects/{project}/zones/{zone}/instances',
4873              'httpMethod' => 'POST',
4874              'parameters' => [
4875                'project' => [
4876                  'location' => 'path',
4877                  'type' => 'string',
4878                  'required' => true,
4879                ],
4880                'zone' => [
4881                  'location' => 'path',
4882                  'type' => 'string',
4883                  'required' => true,
4884                ],
4885                'requestId' => [
4886                  'location' => 'query',
4887                  'type' => 'string',
4888                ],
4889                'sourceInstanceTemplate' => [
4890                  'location' => 'query',
4891                  'type' => 'string',
4892                ],
4893                'sourceMachineImage' => [
4894                  'location' => 'query',
4895                  'type' => 'string',
4896                ],
4897              ],
4898            ],'list' => [
4899              'path' => 'projects/{project}/zones/{zone}/instances',
4900              'httpMethod' => 'GET',
4901              'parameters' => [
4902                'project' => [
4903                  'location' => 'path',
4904                  'type' => 'string',
4905                  'required' => true,
4906                ],
4907                'zone' => [
4908                  'location' => 'path',
4909                  'type' => 'string',
4910                  'required' => true,
4911                ],
4912                'filter' => [
4913                  'location' => 'query',
4914                  'type' => 'string',
4915                ],
4916                'maxResults' => [
4917                  'location' => 'query',
4918                  'type' => 'integer',
4919                ],
4920                'orderBy' => [
4921                  'location' => 'query',
4922                  'type' => 'string',
4923                ],
4924                'pageToken' => [
4925                  'location' => 'query',
4926                  'type' => 'string',
4927                ],
4928                'returnPartialSuccess' => [
4929                  'location' => 'query',
4930                  'type' => 'boolean',
4931                ],
4932              ],
4933            ],'listReferrers' => [
4934              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/referrers',
4935              'httpMethod' => 'GET',
4936              'parameters' => [
4937                'project' => [
4938                  'location' => 'path',
4939                  'type' => 'string',
4940                  'required' => true,
4941                ],
4942                'zone' => [
4943                  'location' => 'path',
4944                  'type' => 'string',
4945                  'required' => true,
4946                ],
4947                'instance' => [
4948                  'location' => 'path',
4949                  'type' => 'string',
4950                  'required' => true,
4951                ],
4952                'filter' => [
4953                  'location' => 'query',
4954                  'type' => 'string',
4955                ],
4956                'maxResults' => [
4957                  'location' => 'query',
4958                  'type' => 'integer',
4959                ],
4960                'orderBy' => [
4961                  'location' => 'query',
4962                  'type' => 'string',
4963                ],
4964                'pageToken' => [
4965                  'location' => 'query',
4966                  'type' => 'string',
4967                ],
4968                'returnPartialSuccess' => [
4969                  'location' => 'query',
4970                  'type' => 'boolean',
4971                ],
4972              ],
4973            ],'removeResourcePolicies' => [
4974              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies',
4975              'httpMethod' => 'POST',
4976              'parameters' => [
4977                'project' => [
4978                  'location' => 'path',
4979                  'type' => 'string',
4980                  'required' => true,
4981                ],
4982                'zone' => [
4983                  'location' => 'path',
4984                  'type' => 'string',
4985                  'required' => true,
4986                ],
4987                'instance' => [
4988                  'location' => 'path',
4989                  'type' => 'string',
4990                  'required' => true,
4991                ],
4992                'requestId' => [
4993                  'location' => 'query',
4994                  'type' => 'string',
4995                ],
4996              ],
4997            ],'reset' => [
4998              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/reset',
4999              'httpMethod' => 'POST',
5000              'parameters' => [
5001                'project' => [
5002                  'location' => 'path',
5003                  'type' => 'string',
5004                  'required' => true,
5005                ],
5006                'zone' => [
5007                  'location' => 'path',
5008                  'type' => 'string',
5009                  'required' => true,
5010                ],
5011                'instance' => [
5012                  'location' => 'path',
5013                  'type' => 'string',
5014                  'required' => true,
5015                ],
5016                'requestId' => [
5017                  'location' => 'query',
5018                  'type' => 'string',
5019                ],
5020              ],
5021            ],'resume' => [
5022              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/resume',
5023              'httpMethod' => 'POST',
5024              'parameters' => [
5025                'project' => [
5026                  'location' => 'path',
5027                  'type' => 'string',
5028                  'required' => true,
5029                ],
5030                'zone' => [
5031                  'location' => 'path',
5032                  'type' => 'string',
5033                  'required' => true,
5034                ],
5035                'instance' => [
5036                  'location' => 'path',
5037                  'type' => 'string',
5038                  'required' => true,
5039                ],
5040                'requestId' => [
5041                  'location' => 'query',
5042                  'type' => 'string',
5043                ],
5044              ],
5045            ],'sendDiagnosticInterrupt' => [
5046              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt',
5047              'httpMethod' => 'POST',
5048              'parameters' => [
5049                'project' => [
5050                  'location' => 'path',
5051                  'type' => 'string',
5052                  'required' => true,
5053                ],
5054                'zone' => [
5055                  'location' => 'path',
5056                  'type' => 'string',
5057                  'required' => true,
5058                ],
5059                'instance' => [
5060                  'location' => 'path',
5061                  'type' => 'string',
5062                  'required' => true,
5063                ],
5064              ],
5065            ],'setDeletionProtection' => [
5066              'path' => 'projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection',
5067              'httpMethod' => 'POST',
5068              'parameters' => [
5069                'project' => [
5070                  'location' => 'path',
5071                  'type' => 'string',
5072                  'required' => true,
5073                ],
5074                'zone' => [
5075                  'location' => 'path',
5076                  'type' => 'string',
5077                  'required' => true,
5078                ],
5079                'resource' => [
5080                  'location' => 'path',
5081                  'type' => 'string',
5082                  'required' => true,
5083                ],
5084                'deletionProtection' => [
5085                  'location' => 'query',
5086                  'type' => 'boolean',
5087                ],
5088                'requestId' => [
5089                  'location' => 'query',
5090                  'type' => 'string',
5091                ],
5092              ],
5093            ],'setDiskAutoDelete' => [
5094              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete',
5095              'httpMethod' => 'POST',
5096              'parameters' => [
5097                'project' => [
5098                  'location' => 'path',
5099                  'type' => 'string',
5100                  'required' => true,
5101                ],
5102                'zone' => [
5103                  'location' => 'path',
5104                  'type' => 'string',
5105                  'required' => true,
5106                ],
5107                'instance' => [
5108                  'location' => 'path',
5109                  'type' => 'string',
5110                  'required' => true,
5111                ],
5112                'autoDelete' => [
5113                  'location' => 'query',
5114                  'type' => 'boolean',
5115                  'required' => true,
5116                ],
5117                'deviceName' => [
5118                  'location' => 'query',
5119                  'type' => 'string',
5120                  'required' => true,
5121                ],
5122                'requestId' => [
5123                  'location' => 'query',
5124                  'type' => 'string',
5125                ],
5126              ],
5127            ],'setIamPolicy' => [
5128              'path' => 'projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy',
5129              'httpMethod' => 'POST',
5130              'parameters' => [
5131                'project' => [
5132                  'location' => 'path',
5133                  'type' => 'string',
5134                  'required' => true,
5135                ],
5136                'zone' => [
5137                  'location' => 'path',
5138                  'type' => 'string',
5139                  'required' => true,
5140                ],
5141                'resource' => [
5142                  'location' => 'path',
5143                  'type' => 'string',
5144                  'required' => true,
5145                ],
5146              ],
5147            ],'setLabels' => [
5148              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setLabels',
5149              'httpMethod' => 'POST',
5150              'parameters' => [
5151                'project' => [
5152                  'location' => 'path',
5153                  'type' => 'string',
5154                  'required' => true,
5155                ],
5156                'zone' => [
5157                  'location' => 'path',
5158                  'type' => 'string',
5159                  'required' => true,
5160                ],
5161                'instance' => [
5162                  'location' => 'path',
5163                  'type' => 'string',
5164                  'required' => true,
5165                ],
5166                'requestId' => [
5167                  'location' => 'query',
5168                  'type' => 'string',
5169                ],
5170              ],
5171            ],'setMachineResources' => [
5172              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setMachineResources',
5173              'httpMethod' => 'POST',
5174              'parameters' => [
5175                'project' => [
5176                  'location' => 'path',
5177                  'type' => 'string',
5178                  'required' => true,
5179                ],
5180                'zone' => [
5181                  'location' => 'path',
5182                  'type' => 'string',
5183                  'required' => true,
5184                ],
5185                'instance' => [
5186                  'location' => 'path',
5187                  'type' => 'string',
5188                  'required' => true,
5189                ],
5190                'requestId' => [
5191                  'location' => 'query',
5192                  'type' => 'string',
5193                ],
5194              ],
5195            ],'setMachineType' => [
5196              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setMachineType',
5197              'httpMethod' => 'POST',
5198              'parameters' => [
5199                'project' => [
5200                  'location' => 'path',
5201                  'type' => 'string',
5202                  'required' => true,
5203                ],
5204                'zone' => [
5205                  'location' => 'path',
5206                  'type' => 'string',
5207                  'required' => true,
5208                ],
5209                'instance' => [
5210                  'location' => 'path',
5211                  'type' => 'string',
5212                  'required' => true,
5213                ],
5214                'requestId' => [
5215                  'location' => 'query',
5216                  'type' => 'string',
5217                ],
5218              ],
5219            ],'setMetadata' => [
5220              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setMetadata',
5221              'httpMethod' => 'POST',
5222              'parameters' => [
5223                'project' => [
5224                  'location' => 'path',
5225                  'type' => 'string',
5226                  'required' => true,
5227                ],
5228                'zone' => [
5229                  'location' => 'path',
5230                  'type' => 'string',
5231                  'required' => true,
5232                ],
5233                'instance' => [
5234                  'location' => 'path',
5235                  'type' => 'string',
5236                  'required' => true,
5237                ],
5238                'requestId' => [
5239                  'location' => 'query',
5240                  'type' => 'string',
5241                ],
5242              ],
5243            ],'setMinCpuPlatform' => [
5244              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform',
5245              'httpMethod' => 'POST',
5246              'parameters' => [
5247                'project' => [
5248                  'location' => 'path',
5249                  'type' => 'string',
5250                  'required' => true,
5251                ],
5252                'zone' => [
5253                  'location' => 'path',
5254                  'type' => 'string',
5255                  'required' => true,
5256                ],
5257                'instance' => [
5258                  'location' => 'path',
5259                  'type' => 'string',
5260                  'required' => true,
5261                ],
5262                'requestId' => [
5263                  'location' => 'query',
5264                  'type' => 'string',
5265                ],
5266              ],
5267            ],'setScheduling' => [
5268              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setScheduling',
5269              'httpMethod' => 'POST',
5270              'parameters' => [
5271                'project' => [
5272                  'location' => 'path',
5273                  'type' => 'string',
5274                  'required' => true,
5275                ],
5276                'zone' => [
5277                  'location' => 'path',
5278                  'type' => 'string',
5279                  'required' => true,
5280                ],
5281                'instance' => [
5282                  'location' => 'path',
5283                  'type' => 'string',
5284                  'required' => true,
5285                ],
5286                'requestId' => [
5287                  'location' => 'query',
5288                  'type' => 'string',
5289                ],
5290              ],
5291            ],'setServiceAccount' => [
5292              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount',
5293              'httpMethod' => 'POST',
5294              'parameters' => [
5295                'project' => [
5296                  'location' => 'path',
5297                  'type' => 'string',
5298                  'required' => true,
5299                ],
5300                'zone' => [
5301                  'location' => 'path',
5302                  'type' => 'string',
5303                  'required' => true,
5304                ],
5305                'instance' => [
5306                  'location' => 'path',
5307                  'type' => 'string',
5308                  'required' => true,
5309                ],
5310                'requestId' => [
5311                  'location' => 'query',
5312                  'type' => 'string',
5313                ],
5314              ],
5315            ],'setShieldedInstanceIntegrityPolicy' => [
5316              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy',
5317              'httpMethod' => 'PATCH',
5318              'parameters' => [
5319                'project' => [
5320                  'location' => 'path',
5321                  'type' => 'string',
5322                  'required' => true,
5323                ],
5324                'zone' => [
5325                  'location' => 'path',
5326                  'type' => 'string',
5327                  'required' => true,
5328                ],
5329                'instance' => [
5330                  'location' => 'path',
5331                  'type' => 'string',
5332                  'required' => true,
5333                ],
5334                'requestId' => [
5335                  'location' => 'query',
5336                  'type' => 'string',
5337                ],
5338              ],
5339            ],'setTags' => [
5340              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/setTags',
5341              'httpMethod' => 'POST',
5342              'parameters' => [
5343                'project' => [
5344                  'location' => 'path',
5345                  'type' => 'string',
5346                  'required' => true,
5347                ],
5348                'zone' => [
5349                  'location' => 'path',
5350                  'type' => 'string',
5351                  'required' => true,
5352                ],
5353                'instance' => [
5354                  'location' => 'path',
5355                  'type' => 'string',
5356                  'required' => true,
5357                ],
5358                'requestId' => [
5359                  'location' => 'query',
5360                  'type' => 'string',
5361                ],
5362              ],
5363            ],'simulateMaintenanceEvent' => [
5364              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent',
5365              'httpMethod' => 'POST',
5366              'parameters' => [
5367                'project' => [
5368                  'location' => 'path',
5369                  'type' => 'string',
5370                  'required' => true,
5371                ],
5372                'zone' => [
5373                  'location' => 'path',
5374                  'type' => 'string',
5375                  'required' => true,
5376                ],
5377                'instance' => [
5378                  'location' => 'path',
5379                  'type' => 'string',
5380                  'required' => true,
5381                ],
5382              ],
5383            ],'start' => [
5384              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/start',
5385              'httpMethod' => 'POST',
5386              'parameters' => [
5387                'project' => [
5388                  'location' => 'path',
5389                  'type' => 'string',
5390                  'required' => true,
5391                ],
5392                'zone' => [
5393                  'location' => 'path',
5394                  'type' => 'string',
5395                  'required' => true,
5396                ],
5397                'instance' => [
5398                  'location' => 'path',
5399                  'type' => 'string',
5400                  'required' => true,
5401                ],
5402                'requestId' => [
5403                  'location' => 'query',
5404                  'type' => 'string',
5405                ],
5406              ],
5407            ],'startWithEncryptionKey' => [
5408              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey',
5409              'httpMethod' => 'POST',
5410              'parameters' => [
5411                'project' => [
5412                  'location' => 'path',
5413                  'type' => 'string',
5414                  'required' => true,
5415                ],
5416                'zone' => [
5417                  'location' => 'path',
5418                  'type' => 'string',
5419                  'required' => true,
5420                ],
5421                'instance' => [
5422                  'location' => 'path',
5423                  'type' => 'string',
5424                  'required' => true,
5425                ],
5426                'requestId' => [
5427                  'location' => 'query',
5428                  'type' => 'string',
5429                ],
5430              ],
5431            ],'stop' => [
5432              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/stop',
5433              'httpMethod' => 'POST',
5434              'parameters' => [
5435                'project' => [
5436                  'location' => 'path',
5437                  'type' => 'string',
5438                  'required' => true,
5439                ],
5440                'zone' => [
5441                  'location' => 'path',
5442                  'type' => 'string',
5443                  'required' => true,
5444                ],
5445                'instance' => [
5446                  'location' => 'path',
5447                  'type' => 'string',
5448                  'required' => true,
5449                ],
5450                'requestId' => [
5451                  'location' => 'query',
5452                  'type' => 'string',
5453                ],
5454              ],
5455            ],'suspend' => [
5456              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/suspend',
5457              'httpMethod' => 'POST',
5458              'parameters' => [
5459                'project' => [
5460                  'location' => 'path',
5461                  'type' => 'string',
5462                  'required' => true,
5463                ],
5464                'zone' => [
5465                  'location' => 'path',
5466                  'type' => 'string',
5467                  'required' => true,
5468                ],
5469                'instance' => [
5470                  'location' => 'path',
5471                  'type' => 'string',
5472                  'required' => true,
5473                ],
5474                'requestId' => [
5475                  'location' => 'query',
5476                  'type' => 'string',
5477                ],
5478              ],
5479            ],'testIamPermissions' => [
5480              'path' => 'projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions',
5481              'httpMethod' => 'POST',
5482              'parameters' => [
5483                'project' => [
5484                  'location' => 'path',
5485                  'type' => 'string',
5486                  'required' => true,
5487                ],
5488                'zone' => [
5489                  'location' => 'path',
5490                  'type' => 'string',
5491                  'required' => true,
5492                ],
5493                'resource' => [
5494                  'location' => 'path',
5495                  'type' => 'string',
5496                  'required' => true,
5497                ],
5498              ],
5499            ],'update' => [
5500              'path' => 'projects/{project}/zones/{zone}/instances/{instance}',
5501              'httpMethod' => 'PUT',
5502              'parameters' => [
5503                'project' => [
5504                  'location' => 'path',
5505                  'type' => 'string',
5506                  'required' => true,
5507                ],
5508                'zone' => [
5509                  'location' => 'path',
5510                  'type' => 'string',
5511                  'required' => true,
5512                ],
5513                'instance' => [
5514                  'location' => 'path',
5515                  'type' => 'string',
5516                  'required' => true,
5517                ],
5518                'minimalAction' => [
5519                  'location' => 'query',
5520                  'type' => 'string',
5521                ],
5522                'mostDisruptiveAllowedAction' => [
5523                  'location' => 'query',
5524                  'type' => 'string',
5525                ],
5526                'requestId' => [
5527                  'location' => 'query',
5528                  'type' => 'string',
5529                ],
5530              ],
5531            ],'updateAccessConfig' => [
5532              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig',
5533              'httpMethod' => 'POST',
5534              'parameters' => [
5535                'project' => [
5536                  'location' => 'path',
5537                  'type' => 'string',
5538                  'required' => true,
5539                ],
5540                'zone' => [
5541                  'location' => 'path',
5542                  'type' => 'string',
5543                  'required' => true,
5544                ],
5545                'instance' => [
5546                  'location' => 'path',
5547                  'type' => 'string',
5548                  'required' => true,
5549                ],
5550                'networkInterface' => [
5551                  'location' => 'query',
5552                  'type' => 'string',
5553                  'required' => true,
5554                ],
5555                'requestId' => [
5556                  'location' => 'query',
5557                  'type' => 'string',
5558                ],
5559              ],
5560            ],'updateDisplayDevice' => [
5561              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice',
5562              'httpMethod' => 'PATCH',
5563              'parameters' => [
5564                'project' => [
5565                  'location' => 'path',
5566                  'type' => 'string',
5567                  'required' => true,
5568                ],
5569                'zone' => [
5570                  'location' => 'path',
5571                  'type' => 'string',
5572                  'required' => true,
5573                ],
5574                'instance' => [
5575                  'location' => 'path',
5576                  'type' => 'string',
5577                  'required' => true,
5578                ],
5579                'requestId' => [
5580                  'location' => 'query',
5581                  'type' => 'string',
5582                ],
5583              ],
5584            ],'updateNetworkInterface' => [
5585              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface',
5586              'httpMethod' => 'PATCH',
5587              'parameters' => [
5588                'project' => [
5589                  'location' => 'path',
5590                  'type' => 'string',
5591                  'required' => true,
5592                ],
5593                'zone' => [
5594                  'location' => 'path',
5595                  'type' => 'string',
5596                  'required' => true,
5597                ],
5598                'instance' => [
5599                  'location' => 'path',
5600                  'type' => 'string',
5601                  'required' => true,
5602                ],
5603                'networkInterface' => [
5604                  'location' => 'query',
5605                  'type' => 'string',
5606                  'required' => true,
5607                ],
5608                'requestId' => [
5609                  'location' => 'query',
5610                  'type' => 'string',
5611                ],
5612              ],
5613            ],'updateShieldedInstanceConfig' => [
5614              'path' => 'projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig',
5615              'httpMethod' => 'PATCH',
5616              'parameters' => [
5617                'project' => [
5618                  'location' => 'path',
5619                  'type' => 'string',
5620                  'required' => true,
5621                ],
5622                'zone' => [
5623                  'location' => 'path',
5624                  'type' => 'string',
5625                  'required' => true,
5626                ],
5627                'instance' => [
5628                  'location' => 'path',
5629                  'type' => 'string',
5630                  'required' => true,
5631                ],
5632                'requestId' => [
5633                  'location' => 'query',
5634                  'type' => 'string',
5635                ],
5636              ],
5637            ],
5638          ]
5639        ]
5640    );
5641    $this->interconnectAttachments = new Compute\Resource\InterconnectAttachments(
5642        $this,
5643        $this->serviceName,
5644        'interconnectAttachments',
5645        [
5646          'methods' => [
5647            'aggregatedList' => [
5648              'path' => 'projects/{project}/aggregated/interconnectAttachments',
5649              'httpMethod' => 'GET',
5650              'parameters' => [
5651                'project' => [
5652                  'location' => 'path',
5653                  'type' => 'string',
5654                  'required' => true,
5655                ],
5656                'filter' => [
5657                  'location' => 'query',
5658                  'type' => 'string',
5659                ],
5660                'includeAllScopes' => [
5661                  'location' => 'query',
5662                  'type' => 'boolean',
5663                ],
5664                'maxResults' => [
5665                  'location' => 'query',
5666                  'type' => 'integer',
5667                ],
5668                'orderBy' => [
5669                  'location' => 'query',
5670                  'type' => 'string',
5671                ],
5672                'pageToken' => [
5673                  'location' => 'query',
5674                  'type' => 'string',
5675                ],
5676                'returnPartialSuccess' => [
5677                  'location' => 'query',
5678                  'type' => 'boolean',
5679                ],
5680              ],
5681            ],'delete' => [
5682              'path' => 'projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}',
5683              'httpMethod' => 'DELETE',
5684              'parameters' => [
5685                'project' => [
5686                  'location' => 'path',
5687                  'type' => 'string',
5688                  'required' => true,
5689                ],
5690                'region' => [
5691                  'location' => 'path',
5692                  'type' => 'string',
5693                  'required' => true,
5694                ],
5695                'interconnectAttachment' => [
5696                  'location' => 'path',
5697                  'type' => 'string',
5698                  'required' => true,
5699                ],
5700                'requestId' => [
5701                  'location' => 'query',
5702                  'type' => 'string',
5703                ],
5704              ],
5705            ],'get' => [
5706              'path' => 'projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}',
5707              'httpMethod' => 'GET',
5708              'parameters' => [
5709                'project' => [
5710                  'location' => 'path',
5711                  'type' => 'string',
5712                  'required' => true,
5713                ],
5714                'region' => [
5715                  'location' => 'path',
5716                  'type' => 'string',
5717                  'required' => true,
5718                ],
5719                'interconnectAttachment' => [
5720                  'location' => 'path',
5721                  'type' => 'string',
5722                  'required' => true,
5723                ],
5724              ],
5725            ],'insert' => [
5726              'path' => 'projects/{project}/regions/{region}/interconnectAttachments',
5727              'httpMethod' => 'POST',
5728              'parameters' => [
5729                'project' => [
5730                  'location' => 'path',
5731                  'type' => 'string',
5732                  'required' => true,
5733                ],
5734                'region' => [
5735                  'location' => 'path',
5736                  'type' => 'string',
5737                  'required' => true,
5738                ],
5739                'requestId' => [
5740                  'location' => 'query',
5741                  'type' => 'string',
5742                ],
5743                'validateOnly' => [
5744                  'location' => 'query',
5745                  'type' => 'boolean',
5746                ],
5747              ],
5748            ],'list' => [
5749              'path' => 'projects/{project}/regions/{region}/interconnectAttachments',
5750              'httpMethod' => 'GET',
5751              'parameters' => [
5752                'project' => [
5753                  'location' => 'path',
5754                  'type' => 'string',
5755                  'required' => true,
5756                ],
5757                'region' => [
5758                  'location' => 'path',
5759                  'type' => 'string',
5760                  'required' => true,
5761                ],
5762                'filter' => [
5763                  'location' => 'query',
5764                  'type' => 'string',
5765                ],
5766                'maxResults' => [
5767                  'location' => 'query',
5768                  'type' => 'integer',
5769                ],
5770                'orderBy' => [
5771                  'location' => 'query',
5772                  'type' => 'string',
5773                ],
5774                'pageToken' => [
5775                  'location' => 'query',
5776                  'type' => 'string',
5777                ],
5778                'returnPartialSuccess' => [
5779                  'location' => 'query',
5780                  'type' => 'boolean',
5781                ],
5782              ],
5783            ],'patch' => [
5784              'path' => 'projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}',
5785              'httpMethod' => 'PATCH',
5786              'parameters' => [
5787                'project' => [
5788                  'location' => 'path',
5789                  'type' => 'string',
5790                  'required' => true,
5791                ],
5792                'region' => [
5793                  'location' => 'path',
5794                  'type' => 'string',
5795                  'required' => true,
5796                ],
5797                'interconnectAttachment' => [
5798                  'location' => 'path',
5799                  'type' => 'string',
5800                  'required' => true,
5801                ],
5802                'requestId' => [
5803                  'location' => 'query',
5804                  'type' => 'string',
5805                ],
5806              ],
5807            ],
5808          ]
5809        ]
5810    );
5811    $this->interconnectLocations = new Compute\Resource\InterconnectLocations(
5812        $this,
5813        $this->serviceName,
5814        'interconnectLocations',
5815        [
5816          'methods' => [
5817            'get' => [
5818              'path' => 'projects/{project}/global/interconnectLocations/{interconnectLocation}',
5819              'httpMethod' => 'GET',
5820              'parameters' => [
5821                'project' => [
5822                  'location' => 'path',
5823                  'type' => 'string',
5824                  'required' => true,
5825                ],
5826                'interconnectLocation' => [
5827                  'location' => 'path',
5828                  'type' => 'string',
5829                  'required' => true,
5830                ],
5831              ],
5832            ],'list' => [
5833              'path' => 'projects/{project}/global/interconnectLocations',
5834              'httpMethod' => 'GET',
5835              'parameters' => [
5836                'project' => [
5837                  'location' => 'path',
5838                  'type' => 'string',
5839                  'required' => true,
5840                ],
5841                'filter' => [
5842                  'location' => 'query',
5843                  'type' => 'string',
5844                ],
5845                'maxResults' => [
5846                  'location' => 'query',
5847                  'type' => 'integer',
5848                ],
5849                'orderBy' => [
5850                  'location' => 'query',
5851                  'type' => 'string',
5852                ],
5853                'pageToken' => [
5854                  'location' => 'query',
5855                  'type' => 'string',
5856                ],
5857                'returnPartialSuccess' => [
5858                  'location' => 'query',
5859                  'type' => 'boolean',
5860                ],
5861              ],
5862            ],
5863          ]
5864        ]
5865    );
5866    $this->interconnects = new Compute\Resource\Interconnects(
5867        $this,
5868        $this->serviceName,
5869        'interconnects',
5870        [
5871          'methods' => [
5872            'delete' => [
5873              'path' => 'projects/{project}/global/interconnects/{interconnect}',
5874              'httpMethod' => 'DELETE',
5875              'parameters' => [
5876                'project' => [
5877                  'location' => 'path',
5878                  'type' => 'string',
5879                  'required' => true,
5880                ],
5881                'interconnect' => [
5882                  'location' => 'path',
5883                  'type' => 'string',
5884                  'required' => true,
5885                ],
5886                'requestId' => [
5887                  'location' => 'query',
5888                  'type' => 'string',
5889                ],
5890              ],
5891            ],'get' => [
5892              'path' => 'projects/{project}/global/interconnects/{interconnect}',
5893              'httpMethod' => 'GET',
5894              'parameters' => [
5895                'project' => [
5896                  'location' => 'path',
5897                  'type' => 'string',
5898                  'required' => true,
5899                ],
5900                'interconnect' => [
5901                  'location' => 'path',
5902                  'type' => 'string',
5903                  'required' => true,
5904                ],
5905              ],
5906            ],'getDiagnostics' => [
5907              'path' => 'projects/{project}/global/interconnects/{interconnect}/getDiagnostics',
5908              'httpMethod' => 'GET',
5909              'parameters' => [
5910                'project' => [
5911                  'location' => 'path',
5912                  'type' => 'string',
5913                  'required' => true,
5914                ],
5915                'interconnect' => [
5916                  'location' => 'path',
5917                  'type' => 'string',
5918                  'required' => true,
5919                ],
5920              ],
5921            ],'insert' => [
5922              'path' => 'projects/{project}/global/interconnects',
5923              'httpMethod' => 'POST',
5924              'parameters' => [
5925                'project' => [
5926                  'location' => 'path',
5927                  'type' => 'string',
5928                  'required' => true,
5929                ],
5930                'requestId' => [
5931                  'location' => 'query',
5932                  'type' => 'string',
5933                ],
5934              ],
5935            ],'list' => [
5936              'path' => 'projects/{project}/global/interconnects',
5937              'httpMethod' => 'GET',
5938              'parameters' => [
5939                'project' => [
5940                  'location' => 'path',
5941                  'type' => 'string',
5942                  'required' => true,
5943                ],
5944                'filter' => [
5945                  'location' => 'query',
5946                  'type' => 'string',
5947                ],
5948                'maxResults' => [
5949                  'location' => 'query',
5950                  'type' => 'integer',
5951                ],
5952                'orderBy' => [
5953                  'location' => 'query',
5954                  'type' => 'string',
5955                ],
5956                'pageToken' => [
5957                  'location' => 'query',
5958                  'type' => 'string',
5959                ],
5960                'returnPartialSuccess' => [
5961                  'location' => 'query',
5962                  'type' => 'boolean',
5963                ],
5964              ],
5965            ],'patch' => [
5966              'path' => 'projects/{project}/global/interconnects/{interconnect}',
5967              'httpMethod' => 'PATCH',
5968              'parameters' => [
5969                'project' => [
5970                  'location' => 'path',
5971                  'type' => 'string',
5972                  'required' => true,
5973                ],
5974                'interconnect' => [
5975                  'location' => 'path',
5976                  'type' => 'string',
5977                  'required' => true,
5978                ],
5979                'requestId' => [
5980                  'location' => 'query',
5981                  'type' => 'string',
5982                ],
5983              ],
5984            ],
5985          ]
5986        ]
5987    );
5988    $this->licenseCodes = new Compute\Resource\LicenseCodes(
5989        $this,
5990        $this->serviceName,
5991        'licenseCodes',
5992        [
5993          'methods' => [
5994            'get' => [
5995              'path' => 'projects/{project}/global/licenseCodes/{licenseCode}',
5996              'httpMethod' => 'GET',
5997              'parameters' => [
5998                'project' => [
5999                  'location' => 'path',
6000                  'type' => 'string',
6001                  'required' => true,
6002                ],
6003                'licenseCode' => [
6004                  'location' => 'path',
6005                  'type' => 'string',
6006                  'required' => true,
6007                ],
6008              ],
6009            ],'testIamPermissions' => [
6010              'path' => 'projects/{project}/global/licenseCodes/{resource}/testIamPermissions',
6011              'httpMethod' => 'POST',
6012              'parameters' => [
6013                'project' => [
6014                  'location' => 'path',
6015                  'type' => 'string',
6016                  'required' => true,
6017                ],
6018                'resource' => [
6019                  'location' => 'path',
6020                  'type' => 'string',
6021                  'required' => true,
6022                ],
6023              ],
6024            ],
6025          ]
6026        ]
6027    );
6028    $this->licenses = new Compute\Resource\Licenses(
6029        $this,
6030        $this->serviceName,
6031        'licenses',
6032        [
6033          'methods' => [
6034            'delete' => [
6035              'path' => 'projects/{project}/global/licenses/{license}',
6036              'httpMethod' => 'DELETE',
6037              'parameters' => [
6038                'project' => [
6039                  'location' => 'path',
6040                  'type' => 'string',
6041                  'required' => true,
6042                ],
6043                'license' => [
6044                  'location' => 'path',
6045                  'type' => 'string',
6046                  'required' => true,
6047                ],
6048                'requestId' => [
6049                  'location' => 'query',
6050                  'type' => 'string',
6051                ],
6052              ],
6053            ],'get' => [
6054              'path' => 'projects/{project}/global/licenses/{license}',
6055              'httpMethod' => 'GET',
6056              'parameters' => [
6057                'project' => [
6058                  'location' => 'path',
6059                  'type' => 'string',
6060                  'required' => true,
6061                ],
6062                'license' => [
6063                  'location' => 'path',
6064                  'type' => 'string',
6065                  'required' => true,
6066                ],
6067              ],
6068            ],'getIamPolicy' => [
6069              'path' => 'projects/{project}/global/licenses/{resource}/getIamPolicy',
6070              'httpMethod' => 'GET',
6071              'parameters' => [
6072                'project' => [
6073                  'location' => 'path',
6074                  'type' => 'string',
6075                  'required' => true,
6076                ],
6077                'resource' => [
6078                  'location' => 'path',
6079                  'type' => 'string',
6080                  'required' => true,
6081                ],
6082                'optionsRequestedPolicyVersion' => [
6083                  'location' => 'query',
6084                  'type' => 'integer',
6085                ],
6086              ],
6087            ],'insert' => [
6088              'path' => 'projects/{project}/global/licenses',
6089              'httpMethod' => 'POST',
6090              'parameters' => [
6091                'project' => [
6092                  'location' => 'path',
6093                  'type' => 'string',
6094                  'required' => true,
6095                ],
6096                'requestId' => [
6097                  'location' => 'query',
6098                  'type' => 'string',
6099                ],
6100              ],
6101            ],'list' => [
6102              'path' => 'projects/{project}/global/licenses',
6103              'httpMethod' => 'GET',
6104              'parameters' => [
6105                'project' => [
6106                  'location' => 'path',
6107                  'type' => 'string',
6108                  'required' => true,
6109                ],
6110                'filter' => [
6111                  'location' => 'query',
6112                  'type' => 'string',
6113                ],
6114                'maxResults' => [
6115                  'location' => 'query',
6116                  'type' => 'integer',
6117                ],
6118                'orderBy' => [
6119                  'location' => 'query',
6120                  'type' => 'string',
6121                ],
6122                'pageToken' => [
6123                  'location' => 'query',
6124                  'type' => 'string',
6125                ],
6126                'returnPartialSuccess' => [
6127                  'location' => 'query',
6128                  'type' => 'boolean',
6129                ],
6130              ],
6131            ],'setIamPolicy' => [
6132              'path' => 'projects/{project}/global/licenses/{resource}/setIamPolicy',
6133              'httpMethod' => 'POST',
6134              'parameters' => [
6135                'project' => [
6136                  'location' => 'path',
6137                  'type' => 'string',
6138                  'required' => true,
6139                ],
6140                'resource' => [
6141                  'location' => 'path',
6142                  'type' => 'string',
6143                  'required' => true,
6144                ],
6145              ],
6146            ],'testIamPermissions' => [
6147              'path' => 'projects/{project}/global/licenses/{resource}/testIamPermissions',
6148              'httpMethod' => 'POST',
6149              'parameters' => [
6150                'project' => [
6151                  'location' => 'path',
6152                  'type' => 'string',
6153                  'required' => true,
6154                ],
6155                'resource' => [
6156                  'location' => 'path',
6157                  'type' => 'string',
6158                  'required' => true,
6159                ],
6160              ],
6161            ],
6162          ]
6163        ]
6164    );
6165    $this->machineImages = new Compute\Resource\MachineImages(
6166        $this,
6167        $this->serviceName,
6168        'machineImages',
6169        [
6170          'methods' => [
6171            'delete' => [
6172              'path' => 'projects/{project}/global/machineImages/{machineImage}',
6173              'httpMethod' => 'DELETE',
6174              'parameters' => [
6175                'project' => [
6176                  'location' => 'path',
6177                  'type' => 'string',
6178                  'required' => true,
6179                ],
6180                'machineImage' => [
6181                  'location' => 'path',
6182                  'type' => 'string',
6183                  'required' => true,
6184                ],
6185                'requestId' => [
6186                  'location' => 'query',
6187                  'type' => 'string',
6188                ],
6189              ],
6190            ],'get' => [
6191              'path' => 'projects/{project}/global/machineImages/{machineImage}',
6192              'httpMethod' => 'GET',
6193              'parameters' => [
6194                'project' => [
6195                  'location' => 'path',
6196                  'type' => 'string',
6197                  'required' => true,
6198                ],
6199                'machineImage' => [
6200                  'location' => 'path',
6201                  'type' => 'string',
6202                  'required' => true,
6203                ],
6204              ],
6205            ],'getIamPolicy' => [
6206              'path' => 'projects/{project}/global/machineImages/{resource}/getIamPolicy',
6207              'httpMethod' => 'GET',
6208              'parameters' => [
6209                'project' => [
6210                  'location' => 'path',
6211                  'type' => 'string',
6212                  'required' => true,
6213                ],
6214                'resource' => [
6215                  'location' => 'path',
6216                  'type' => 'string',
6217                  'required' => true,
6218                ],
6219                'optionsRequestedPolicyVersion' => [
6220                  'location' => 'query',
6221                  'type' => 'integer',
6222                ],
6223              ],
6224            ],'insert' => [
6225              'path' => 'projects/{project}/global/machineImages',
6226              'httpMethod' => 'POST',
6227              'parameters' => [
6228                'project' => [
6229                  'location' => 'path',
6230                  'type' => 'string',
6231                  'required' => true,
6232                ],
6233                'requestId' => [
6234                  'location' => 'query',
6235                  'type' => 'string',
6236                ],
6237                'sourceInstance' => [
6238                  'location' => 'query',
6239                  'type' => 'string',
6240                ],
6241              ],
6242            ],'list' => [
6243              'path' => 'projects/{project}/global/machineImages',
6244              'httpMethod' => 'GET',
6245              'parameters' => [
6246                'project' => [
6247                  'location' => 'path',
6248                  'type' => 'string',
6249                  'required' => true,
6250                ],
6251                'filter' => [
6252                  'location' => 'query',
6253                  'type' => 'string',
6254                ],
6255                'maxResults' => [
6256                  'location' => 'query',
6257                  'type' => 'integer',
6258                ],
6259                'orderBy' => [
6260                  'location' => 'query',
6261                  'type' => 'string',
6262                ],
6263                'pageToken' => [
6264                  'location' => 'query',
6265                  'type' => 'string',
6266                ],
6267                'returnPartialSuccess' => [
6268                  'location' => 'query',
6269                  'type' => 'boolean',
6270                ],
6271              ],
6272            ],'setIamPolicy' => [
6273              'path' => 'projects/{project}/global/machineImages/{resource}/setIamPolicy',
6274              'httpMethod' => 'POST',
6275              'parameters' => [
6276                'project' => [
6277                  'location' => 'path',
6278                  'type' => 'string',
6279                  'required' => true,
6280                ],
6281                'resource' => [
6282                  'location' => 'path',
6283                  'type' => 'string',
6284                  'required' => true,
6285                ],
6286              ],
6287            ],'testIamPermissions' => [
6288              'path' => 'projects/{project}/global/machineImages/{resource}/testIamPermissions',
6289              'httpMethod' => 'POST',
6290              'parameters' => [
6291                'project' => [
6292                  'location' => 'path',
6293                  'type' => 'string',
6294                  'required' => true,
6295                ],
6296                'resource' => [
6297                  'location' => 'path',
6298                  'type' => 'string',
6299                  'required' => true,
6300                ],
6301              ],
6302            ],
6303          ]
6304        ]
6305    );
6306    $this->machineTypes = new Compute\Resource\MachineTypes(
6307        $this,
6308        $this->serviceName,
6309        'machineTypes',
6310        [
6311          'methods' => [
6312            'aggregatedList' => [
6313              'path' => 'projects/{project}/aggregated/machineTypes',
6314              'httpMethod' => 'GET',
6315              'parameters' => [
6316                'project' => [
6317                  'location' => 'path',
6318                  'type' => 'string',
6319                  'required' => true,
6320                ],
6321                'filter' => [
6322                  'location' => 'query',
6323                  'type' => 'string',
6324                ],
6325                'includeAllScopes' => [
6326                  'location' => 'query',
6327                  'type' => 'boolean',
6328                ],
6329                'maxResults' => [
6330                  'location' => 'query',
6331                  'type' => 'integer',
6332                ],
6333                'orderBy' => [
6334                  'location' => 'query',
6335                  'type' => 'string',
6336                ],
6337                'pageToken' => [
6338                  'location' => 'query',
6339                  'type' => 'string',
6340                ],
6341                'returnPartialSuccess' => [
6342                  'location' => 'query',
6343                  'type' => 'boolean',
6344                ],
6345              ],
6346            ],'get' => [
6347              'path' => 'projects/{project}/zones/{zone}/machineTypes/{machineType}',
6348              'httpMethod' => 'GET',
6349              'parameters' => [
6350                'project' => [
6351                  'location' => 'path',
6352                  'type' => 'string',
6353                  'required' => true,
6354                ],
6355                'zone' => [
6356                  'location' => 'path',
6357                  'type' => 'string',
6358                  'required' => true,
6359                ],
6360                'machineType' => [
6361                  'location' => 'path',
6362                  'type' => 'string',
6363                  'required' => true,
6364                ],
6365              ],
6366            ],'list' => [
6367              'path' => 'projects/{project}/zones/{zone}/machineTypes',
6368              'httpMethod' => 'GET',
6369              'parameters' => [
6370                'project' => [
6371                  'location' => 'path',
6372                  'type' => 'string',
6373                  'required' => true,
6374                ],
6375                'zone' => [
6376                  'location' => 'path',
6377                  'type' => 'string',
6378                  'required' => true,
6379                ],
6380                'filter' => [
6381                  'location' => 'query',
6382                  'type' => 'string',
6383                ],
6384                'maxResults' => [
6385                  'location' => 'query',
6386                  'type' => 'integer',
6387                ],
6388                'orderBy' => [
6389                  'location' => 'query',
6390                  'type' => 'string',
6391                ],
6392                'pageToken' => [
6393                  'location' => 'query',
6394                  'type' => 'string',
6395                ],
6396                'returnPartialSuccess' => [
6397                  'location' => 'query',
6398                  'type' => 'boolean',
6399                ],
6400              ],
6401            ],
6402          ]
6403        ]
6404    );
6405    $this->networkEdgeSecurityServices = new Compute\Resource\NetworkEdgeSecurityServices(
6406        $this,
6407        $this->serviceName,
6408        'networkEdgeSecurityServices',
6409        [
6410          'methods' => [
6411            'aggregatedList' => [
6412              'path' => 'projects/{project}/aggregated/networkEdgeSecurityServices',
6413              'httpMethod' => 'GET',
6414              'parameters' => [
6415                'project' => [
6416                  'location' => 'path',
6417                  'type' => 'string',
6418                  'required' => true,
6419                ],
6420                'filter' => [
6421                  'location' => 'query',
6422                  'type' => 'string',
6423                ],
6424                'includeAllScopes' => [
6425                  'location' => 'query',
6426                  'type' => 'boolean',
6427                ],
6428                'maxResults' => [
6429                  'location' => 'query',
6430                  'type' => 'integer',
6431                ],
6432                'orderBy' => [
6433                  'location' => 'query',
6434                  'type' => 'string',
6435                ],
6436                'pageToken' => [
6437                  'location' => 'query',
6438                  'type' => 'string',
6439                ],
6440                'returnPartialSuccess' => [
6441                  'location' => 'query',
6442                  'type' => 'boolean',
6443                ],
6444              ],
6445            ],'delete' => [
6446              'path' => 'projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}',
6447              'httpMethod' => 'DELETE',
6448              'parameters' => [
6449                'project' => [
6450                  'location' => 'path',
6451                  'type' => 'string',
6452                  'required' => true,
6453                ],
6454                'region' => [
6455                  'location' => 'path',
6456                  'type' => 'string',
6457                  'required' => true,
6458                ],
6459                'networkEdgeSecurityService' => [
6460                  'location' => 'path',
6461                  'type' => 'string',
6462                  'required' => true,
6463                ],
6464                'requestId' => [
6465                  'location' => 'query',
6466                  'type' => 'string',
6467                ],
6468              ],
6469            ],'get' => [
6470              'path' => 'projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}',
6471              'httpMethod' => 'GET',
6472              'parameters' => [
6473                'project' => [
6474                  'location' => 'path',
6475                  'type' => 'string',
6476                  'required' => true,
6477                ],
6478                'region' => [
6479                  'location' => 'path',
6480                  'type' => 'string',
6481                  'required' => true,
6482                ],
6483                'networkEdgeSecurityService' => [
6484                  'location' => 'path',
6485                  'type' => 'string',
6486                  'required' => true,
6487                ],
6488              ],
6489            ],'insert' => [
6490              'path' => 'projects/{project}/regions/{region}/networkEdgeSecurityServices',
6491              'httpMethod' => 'POST',
6492              'parameters' => [
6493                'project' => [
6494                  'location' => 'path',
6495                  'type' => 'string',
6496                  'required' => true,
6497                ],
6498                'region' => [
6499                  'location' => 'path',
6500                  'type' => 'string',
6501                  'required' => true,
6502                ],
6503                'requestId' => [
6504                  'location' => 'query',
6505                  'type' => 'string',
6506                ],
6507                'validateOnly' => [
6508                  'location' => 'query',
6509                  'type' => 'boolean',
6510                ],
6511              ],
6512            ],'patch' => [
6513              'path' => 'projects/{project}/regions/{region}/networkEdgeSecurityServices/{networkEdgeSecurityService}',
6514              'httpMethod' => 'PATCH',
6515              'parameters' => [
6516                'project' => [
6517                  'location' => 'path',
6518                  'type' => 'string',
6519                  'required' => true,
6520                ],
6521                'region' => [
6522                  'location' => 'path',
6523                  'type' => 'string',
6524                  'required' => true,
6525                ],
6526                'networkEdgeSecurityService' => [
6527                  'location' => 'path',
6528                  'type' => 'string',
6529                  'required' => true,
6530                ],
6531                'paths' => [
6532                  'location' => 'query',
6533                  'type' => 'string',
6534                  'repeated' => true,
6535                ],
6536                'requestId' => [
6537                  'location' => 'query',
6538                  'type' => 'string',
6539                ],
6540                'updateMask' => [
6541                  'location' => 'query',
6542                  'type' => 'string',
6543                ],
6544              ],
6545            ],
6546          ]
6547        ]
6548    );
6549    $this->networkEndpointGroups = new Compute\Resource\NetworkEndpointGroups(
6550        $this,
6551        $this->serviceName,
6552        'networkEndpointGroups',
6553        [
6554          'methods' => [
6555            'aggregatedList' => [
6556              'path' => 'projects/{project}/aggregated/networkEndpointGroups',
6557              'httpMethod' => 'GET',
6558              'parameters' => [
6559                'project' => [
6560                  'location' => 'path',
6561                  'type' => 'string',
6562                  'required' => true,
6563                ],
6564                'filter' => [
6565                  'location' => 'query',
6566                  'type' => 'string',
6567                ],
6568                'includeAllScopes' => [
6569                  'location' => 'query',
6570                  'type' => 'boolean',
6571                ],
6572                'maxResults' => [
6573                  'location' => 'query',
6574                  'type' => 'integer',
6575                ],
6576                'orderBy' => [
6577                  'location' => 'query',
6578                  'type' => 'string',
6579                ],
6580                'pageToken' => [
6581                  'location' => 'query',
6582                  'type' => 'string',
6583                ],
6584                'returnPartialSuccess' => [
6585                  'location' => 'query',
6586                  'type' => 'boolean',
6587                ],
6588              ],
6589            ],'attachNetworkEndpoints' => [
6590              'path' => 'projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints',
6591              'httpMethod' => 'POST',
6592              'parameters' => [
6593                'project' => [
6594                  'location' => 'path',
6595                  'type' => 'string',
6596                  'required' => true,
6597                ],
6598                'zone' => [
6599                  'location' => 'path',
6600                  'type' => 'string',
6601                  'required' => true,
6602                ],
6603                'networkEndpointGroup' => [
6604                  'location' => 'path',
6605                  'type' => 'string',
6606                  'required' => true,
6607                ],
6608                'requestId' => [
6609                  'location' => 'query',
6610                  'type' => 'string',
6611                ],
6612              ],
6613            ],'delete' => [
6614              'path' => 'projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}',
6615              'httpMethod' => 'DELETE',
6616              'parameters' => [
6617                'project' => [
6618                  'location' => 'path',
6619                  'type' => 'string',
6620                  'required' => true,
6621                ],
6622                'zone' => [
6623                  'location' => 'path',
6624                  'type' => 'string',
6625                  'required' => true,
6626                ],
6627                'networkEndpointGroup' => [
6628                  'location' => 'path',
6629                  'type' => 'string',
6630                  'required' => true,
6631                ],
6632                'requestId' => [
6633                  'location' => 'query',
6634                  'type' => 'string',
6635                ],
6636              ],
6637            ],'detachNetworkEndpoints' => [
6638              'path' => 'projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints',
6639              'httpMethod' => 'POST',
6640              'parameters' => [
6641                'project' => [
6642                  'location' => 'path',
6643                  'type' => 'string',
6644                  'required' => true,
6645                ],
6646                'zone' => [
6647                  'location' => 'path',
6648                  'type' => 'string',
6649                  'required' => true,
6650                ],
6651                'networkEndpointGroup' => [
6652                  'location' => 'path',
6653                  'type' => 'string',
6654                  'required' => true,
6655                ],
6656                'requestId' => [
6657                  'location' => 'query',
6658                  'type' => 'string',
6659                ],
6660              ],
6661            ],'get' => [
6662              'path' => 'projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}',
6663              'httpMethod' => 'GET',
6664              'parameters' => [
6665                'project' => [
6666                  'location' => 'path',
6667                  'type' => 'string',
6668                  'required' => true,
6669                ],
6670                'zone' => [
6671                  'location' => 'path',
6672                  'type' => 'string',
6673                  'required' => true,
6674                ],
6675                'networkEndpointGroup' => [
6676                  'location' => 'path',
6677                  'type' => 'string',
6678                  'required' => true,
6679                ],
6680              ],
6681            ],'insert' => [
6682              'path' => 'projects/{project}/zones/{zone}/networkEndpointGroups',
6683              'httpMethod' => 'POST',
6684              'parameters' => [
6685                'project' => [
6686                  'location' => 'path',
6687                  'type' => 'string',
6688                  'required' => true,
6689                ],
6690                'zone' => [
6691                  'location' => 'path',
6692                  'type' => 'string',
6693                  'required' => true,
6694                ],
6695                'requestId' => [
6696                  'location' => 'query',
6697                  'type' => 'string',
6698                ],
6699              ],
6700            ],'list' => [
6701              'path' => 'projects/{project}/zones/{zone}/networkEndpointGroups',
6702              'httpMethod' => 'GET',
6703              'parameters' => [
6704                'project' => [
6705                  'location' => 'path',
6706                  'type' => 'string',
6707                  'required' => true,
6708                ],
6709                'zone' => [
6710                  'location' => 'path',
6711                  'type' => 'string',
6712                  'required' => true,
6713                ],
6714                'filter' => [
6715                  'location' => 'query',
6716                  'type' => 'string',
6717                ],
6718                'maxResults' => [
6719                  'location' => 'query',
6720                  'type' => 'integer',
6721                ],
6722                'orderBy' => [
6723                  'location' => 'query',
6724                  'type' => 'string',
6725                ],
6726                'pageToken' => [
6727                  'location' => 'query',
6728                  'type' => 'string',
6729                ],
6730                'returnPartialSuccess' => [
6731                  'location' => 'query',
6732                  'type' => 'boolean',
6733                ],
6734              ],
6735            ],'listNetworkEndpoints' => [
6736              'path' => 'projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints',
6737              'httpMethod' => 'POST',
6738              'parameters' => [
6739                'project' => [
6740                  'location' => 'path',
6741                  'type' => 'string',
6742                  'required' => true,
6743                ],
6744                'zone' => [
6745                  'location' => 'path',
6746                  'type' => 'string',
6747                  'required' => true,
6748                ],
6749                'networkEndpointGroup' => [
6750                  'location' => 'path',
6751                  'type' => 'string',
6752                  'required' => true,
6753                ],
6754                'filter' => [
6755                  'location' => 'query',
6756                  'type' => 'string',
6757                ],
6758                'maxResults' => [
6759                  'location' => 'query',
6760                  'type' => 'integer',
6761                ],
6762                'orderBy' => [
6763                  'location' => 'query',
6764                  'type' => 'string',
6765                ],
6766                'pageToken' => [
6767                  'location' => 'query',
6768                  'type' => 'string',
6769                ],
6770                'returnPartialSuccess' => [
6771                  'location' => 'query',
6772                  'type' => 'boolean',
6773                ],
6774              ],
6775            ],'testIamPermissions' => [
6776              'path' => 'projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions',
6777              'httpMethod' => 'POST',
6778              'parameters' => [
6779                'project' => [
6780                  'location' => 'path',
6781                  'type' => 'string',
6782                  'required' => true,
6783                ],
6784                'zone' => [
6785                  'location' => 'path',
6786                  'type' => 'string',
6787                  'required' => true,
6788                ],
6789                'resource' => [
6790                  'location' => 'path',
6791                  'type' => 'string',
6792                  'required' => true,
6793                ],
6794              ],
6795            ],
6796          ]
6797        ]
6798    );
6799    $this->networkFirewallPolicies = new Compute\Resource\NetworkFirewallPolicies(
6800        $this,
6801        $this->serviceName,
6802        'networkFirewallPolicies',
6803        [
6804          'methods' => [
6805            'addAssociation' => [
6806              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}/addAssociation',
6807              'httpMethod' => 'POST',
6808              'parameters' => [
6809                'project' => [
6810                  'location' => 'path',
6811                  'type' => 'string',
6812                  'required' => true,
6813                ],
6814                'firewallPolicy' => [
6815                  'location' => 'path',
6816                  'type' => 'string',
6817                  'required' => true,
6818                ],
6819                'replaceExistingAssociation' => [
6820                  'location' => 'query',
6821                  'type' => 'boolean',
6822                ],
6823                'requestId' => [
6824                  'location' => 'query',
6825                  'type' => 'string',
6826                ],
6827              ],
6828            ],'addRule' => [
6829              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}/addRule',
6830              'httpMethod' => 'POST',
6831              'parameters' => [
6832                'project' => [
6833                  'location' => 'path',
6834                  'type' => 'string',
6835                  'required' => true,
6836                ],
6837                'firewallPolicy' => [
6838                  'location' => 'path',
6839                  'type' => 'string',
6840                  'required' => true,
6841                ],
6842                'maxPriority' => [
6843                  'location' => 'query',
6844                  'type' => 'integer',
6845                ],
6846                'minPriority' => [
6847                  'location' => 'query',
6848                  'type' => 'integer',
6849                ],
6850                'requestId' => [
6851                  'location' => 'query',
6852                  'type' => 'string',
6853                ],
6854              ],
6855            ],'cloneRules' => [
6856              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}/cloneRules',
6857              'httpMethod' => 'POST',
6858              'parameters' => [
6859                'project' => [
6860                  'location' => 'path',
6861                  'type' => 'string',
6862                  'required' => true,
6863                ],
6864                'firewallPolicy' => [
6865                  'location' => 'path',
6866                  'type' => 'string',
6867                  'required' => true,
6868                ],
6869                'requestId' => [
6870                  'location' => 'query',
6871                  'type' => 'string',
6872                ],
6873                'sourceFirewallPolicy' => [
6874                  'location' => 'query',
6875                  'type' => 'string',
6876                ],
6877              ],
6878            ],'delete' => [
6879              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}',
6880              'httpMethod' => 'DELETE',
6881              'parameters' => [
6882                'project' => [
6883                  'location' => 'path',
6884                  'type' => 'string',
6885                  'required' => true,
6886                ],
6887                'firewallPolicy' => [
6888                  'location' => 'path',
6889                  'type' => 'string',
6890                  'required' => true,
6891                ],
6892                'requestId' => [
6893                  'location' => 'query',
6894                  'type' => 'string',
6895                ],
6896              ],
6897            ],'get' => [
6898              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}',
6899              'httpMethod' => 'GET',
6900              'parameters' => [
6901                'project' => [
6902                  'location' => 'path',
6903                  'type' => 'string',
6904                  'required' => true,
6905                ],
6906                'firewallPolicy' => [
6907                  'location' => 'path',
6908                  'type' => 'string',
6909                  'required' => true,
6910                ],
6911              ],
6912            ],'getAssociation' => [
6913              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}/getAssociation',
6914              'httpMethod' => 'GET',
6915              'parameters' => [
6916                'project' => [
6917                  'location' => 'path',
6918                  'type' => 'string',
6919                  'required' => true,
6920                ],
6921                'firewallPolicy' => [
6922                  'location' => 'path',
6923                  'type' => 'string',
6924                  'required' => true,
6925                ],
6926                'name' => [
6927                  'location' => 'query',
6928                  'type' => 'string',
6929                ],
6930              ],
6931            ],'getIamPolicy' => [
6932              'path' => 'projects/{project}/global/firewallPolicies/{resource}/getIamPolicy',
6933              'httpMethod' => 'GET',
6934              'parameters' => [
6935                'project' => [
6936                  'location' => 'path',
6937                  'type' => 'string',
6938                  'required' => true,
6939                ],
6940                'resource' => [
6941                  'location' => 'path',
6942                  'type' => 'string',
6943                  'required' => true,
6944                ],
6945                'optionsRequestedPolicyVersion' => [
6946                  'location' => 'query',
6947                  'type' => 'integer',
6948                ],
6949              ],
6950            ],'getRule' => [
6951              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}/getRule',
6952              'httpMethod' => 'GET',
6953              'parameters' => [
6954                'project' => [
6955                  'location' => 'path',
6956                  'type' => 'string',
6957                  'required' => true,
6958                ],
6959                'firewallPolicy' => [
6960                  'location' => 'path',
6961                  'type' => 'string',
6962                  'required' => true,
6963                ],
6964                'priority' => [
6965                  'location' => 'query',
6966                  'type' => 'integer',
6967                ],
6968              ],
6969            ],'insert' => [
6970              'path' => 'projects/{project}/global/firewallPolicies',
6971              'httpMethod' => 'POST',
6972              'parameters' => [
6973                'project' => [
6974                  'location' => 'path',
6975                  'type' => 'string',
6976                  'required' => true,
6977                ],
6978                'requestId' => [
6979                  'location' => 'query',
6980                  'type' => 'string',
6981                ],
6982              ],
6983            ],'list' => [
6984              'path' => 'projects/{project}/global/firewallPolicies',
6985              'httpMethod' => 'GET',
6986              'parameters' => [
6987                'project' => [
6988                  'location' => 'path',
6989                  'type' => 'string',
6990                  'required' => true,
6991                ],
6992                'filter' => [
6993                  'location' => 'query',
6994                  'type' => 'string',
6995                ],
6996                'maxResults' => [
6997                  'location' => 'query',
6998                  'type' => 'integer',
6999                ],
7000                'orderBy' => [
7001                  'location' => 'query',
7002                  'type' => 'string',
7003                ],
7004                'pageToken' => [
7005                  'location' => 'query',
7006                  'type' => 'string',
7007                ],
7008                'returnPartialSuccess' => [
7009                  'location' => 'query',
7010                  'type' => 'boolean',
7011                ],
7012              ],
7013            ],'patch' => [
7014              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}',
7015              'httpMethod' => 'PATCH',
7016              'parameters' => [
7017                'project' => [
7018                  'location' => 'path',
7019                  'type' => 'string',
7020                  'required' => true,
7021                ],
7022                'firewallPolicy' => [
7023                  'location' => 'path',
7024                  'type' => 'string',
7025                  'required' => true,
7026                ],
7027                'requestId' => [
7028                  'location' => 'query',
7029                  'type' => 'string',
7030                ],
7031              ],
7032            ],'patchRule' => [
7033              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}/patchRule',
7034              'httpMethod' => 'POST',
7035              'parameters' => [
7036                'project' => [
7037                  'location' => 'path',
7038                  'type' => 'string',
7039                  'required' => true,
7040                ],
7041                'firewallPolicy' => [
7042                  'location' => 'path',
7043                  'type' => 'string',
7044                  'required' => true,
7045                ],
7046                'priority' => [
7047                  'location' => 'query',
7048                  'type' => 'integer',
7049                ],
7050                'requestId' => [
7051                  'location' => 'query',
7052                  'type' => 'string',
7053                ],
7054              ],
7055            ],'removeAssociation' => [
7056              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}/removeAssociation',
7057              'httpMethod' => 'POST',
7058              'parameters' => [
7059                'project' => [
7060                  'location' => 'path',
7061                  'type' => 'string',
7062                  'required' => true,
7063                ],
7064                'firewallPolicy' => [
7065                  'location' => 'path',
7066                  'type' => 'string',
7067                  'required' => true,
7068                ],
7069                'name' => [
7070                  'location' => 'query',
7071                  'type' => 'string',
7072                ],
7073                'requestId' => [
7074                  'location' => 'query',
7075                  'type' => 'string',
7076                ],
7077              ],
7078            ],'removeRule' => [
7079              'path' => 'projects/{project}/global/firewallPolicies/{firewallPolicy}/removeRule',
7080              'httpMethod' => 'POST',
7081              'parameters' => [
7082                'project' => [
7083                  'location' => 'path',
7084                  'type' => 'string',
7085                  'required' => true,
7086                ],
7087                'firewallPolicy' => [
7088                  'location' => 'path',
7089                  'type' => 'string',
7090                  'required' => true,
7091                ],
7092                'priority' => [
7093                  'location' => 'query',
7094                  'type' => 'integer',
7095                ],
7096                'requestId' => [
7097                  'location' => 'query',
7098                  'type' => 'string',
7099                ],
7100              ],
7101            ],'setIamPolicy' => [
7102              'path' => 'projects/{project}/global/firewallPolicies/{resource}/setIamPolicy',
7103              'httpMethod' => 'POST',
7104              'parameters' => [
7105                'project' => [
7106                  'location' => 'path',
7107                  'type' => 'string',
7108                  'required' => true,
7109                ],
7110                'resource' => [
7111                  'location' => 'path',
7112                  'type' => 'string',
7113                  'required' => true,
7114                ],
7115              ],
7116            ],'testIamPermissions' => [
7117              'path' => 'projects/{project}/global/firewallPolicies/{resource}/testIamPermissions',
7118              'httpMethod' => 'POST',
7119              'parameters' => [
7120                'project' => [
7121                  'location' => 'path',
7122                  'type' => 'string',
7123                  'required' => true,
7124                ],
7125                'resource' => [
7126                  'location' => 'path',
7127                  'type' => 'string',
7128                  'required' => true,
7129                ],
7130              ],
7131            ],
7132          ]
7133        ]
7134    );
7135    $this->networks = new Compute\Resource\Networks(
7136        $this,
7137        $this->serviceName,
7138        'networks',
7139        [
7140          'methods' => [
7141            'addPeering' => [
7142              'path' => 'projects/{project}/global/networks/{network}/addPeering',
7143              'httpMethod' => 'POST',
7144              'parameters' => [
7145                'project' => [
7146                  'location' => 'path',
7147                  'type' => 'string',
7148                  'required' => true,
7149                ],
7150                'network' => [
7151                  'location' => 'path',
7152                  'type' => 'string',
7153                  'required' => true,
7154                ],
7155                'requestId' => [
7156                  'location' => 'query',
7157                  'type' => 'string',
7158                ],
7159              ],
7160            ],'delete' => [
7161              'path' => 'projects/{project}/global/networks/{network}',
7162              'httpMethod' => 'DELETE',
7163              'parameters' => [
7164                'project' => [
7165                  'location' => 'path',
7166                  'type' => 'string',
7167                  'required' => true,
7168                ],
7169                'network' => [
7170                  'location' => 'path',
7171                  'type' => 'string',
7172                  'required' => true,
7173                ],
7174                'requestId' => [
7175                  'location' => 'query',
7176                  'type' => 'string',
7177                ],
7178              ],
7179            ],'get' => [
7180              'path' => 'projects/{project}/global/networks/{network}',
7181              'httpMethod' => 'GET',
7182              'parameters' => [
7183                'project' => [
7184                  'location' => 'path',
7185                  'type' => 'string',
7186                  'required' => true,
7187                ],
7188                'network' => [
7189                  'location' => 'path',
7190                  'type' => 'string',
7191                  'required' => true,
7192                ],
7193              ],
7194            ],'getEffectiveFirewalls' => [
7195              'path' => 'projects/{project}/global/networks/{network}/getEffectiveFirewalls',
7196              'httpMethod' => 'GET',
7197              'parameters' => [
7198                'project' => [
7199                  'location' => 'path',
7200                  'type' => 'string',
7201                  'required' => true,
7202                ],
7203                'network' => [
7204                  'location' => 'path',
7205                  'type' => 'string',
7206                  'required' => true,
7207                ],
7208              ],
7209            ],'insert' => [
7210              'path' => 'projects/{project}/global/networks',
7211              'httpMethod' => 'POST',
7212              'parameters' => [
7213                'project' => [
7214                  'location' => 'path',
7215                  'type' => 'string',
7216                  'required' => true,
7217                ],
7218                'requestId' => [
7219                  'location' => 'query',
7220                  'type' => 'string',
7221                ],
7222              ],
7223            ],'list' => [
7224              'path' => 'projects/{project}/global/networks',
7225              'httpMethod' => 'GET',
7226              'parameters' => [
7227                'project' => [
7228                  'location' => 'path',
7229                  'type' => 'string',
7230                  'required' => true,
7231                ],
7232                'filter' => [
7233                  'location' => 'query',
7234                  'type' => 'string',
7235                ],
7236                'maxResults' => [
7237                  'location' => 'query',
7238                  'type' => 'integer',
7239                ],
7240                'orderBy' => [
7241                  'location' => 'query',
7242                  'type' => 'string',
7243                ],
7244                'pageToken' => [
7245                  'location' => 'query',
7246                  'type' => 'string',
7247                ],
7248                'returnPartialSuccess' => [
7249                  'location' => 'query',
7250                  'type' => 'boolean',
7251                ],
7252              ],
7253            ],'listPeeringRoutes' => [
7254              'path' => 'projects/{project}/global/networks/{network}/listPeeringRoutes',
7255              'httpMethod' => 'GET',
7256              'parameters' => [
7257                'project' => [
7258                  'location' => 'path',
7259                  'type' => 'string',
7260                  'required' => true,
7261                ],
7262                'network' => [
7263                  'location' => 'path',
7264                  'type' => 'string',
7265                  'required' => true,
7266                ],
7267                'direction' => [
7268                  'location' => 'query',
7269                  'type' => 'string',
7270                ],
7271                'filter' => [
7272                  'location' => 'query',
7273                  'type' => 'string',
7274                ],
7275                'maxResults' => [
7276                  'location' => 'query',
7277                  'type' => 'integer',
7278                ],
7279                'orderBy' => [
7280                  'location' => 'query',
7281                  'type' => 'string',
7282                ],
7283                'pageToken' => [
7284                  'location' => 'query',
7285                  'type' => 'string',
7286                ],
7287                'peeringName' => [
7288                  'location' => 'query',
7289                  'type' => 'string',
7290                ],
7291                'region' => [
7292                  'location' => 'query',
7293                  'type' => 'string',
7294                ],
7295                'returnPartialSuccess' => [
7296                  'location' => 'query',
7297                  'type' => 'boolean',
7298                ],
7299              ],
7300            ],'patch' => [
7301              'path' => 'projects/{project}/global/networks/{network}',
7302              'httpMethod' => 'PATCH',
7303              'parameters' => [
7304                'project' => [
7305                  'location' => 'path',
7306                  'type' => 'string',
7307                  'required' => true,
7308                ],
7309                'network' => [
7310                  'location' => 'path',
7311                  'type' => 'string',
7312                  'required' => true,
7313                ],
7314                'requestId' => [
7315                  'location' => 'query',
7316                  'type' => 'string',
7317                ],
7318              ],
7319            ],'removePeering' => [
7320              'path' => 'projects/{project}/global/networks/{network}/removePeering',
7321              'httpMethod' => 'POST',
7322              'parameters' => [
7323                'project' => [
7324                  'location' => 'path',
7325                  'type' => 'string',
7326                  'required' => true,
7327                ],
7328                'network' => [
7329                  'location' => 'path',
7330                  'type' => 'string',
7331                  'required' => true,
7332                ],
7333                'requestId' => [
7334                  'location' => 'query',
7335                  'type' => 'string',
7336                ],
7337              ],
7338            ],'switchToCustomMode' => [
7339              'path' => 'projects/{project}/global/networks/{network}/switchToCustomMode',
7340              'httpMethod' => 'POST',
7341              'parameters' => [
7342                'project' => [
7343                  'location' => 'path',
7344                  'type' => 'string',
7345                  'required' => true,
7346                ],
7347                'network' => [
7348                  'location' => 'path',
7349                  'type' => 'string',
7350                  'required' => true,
7351                ],
7352                'requestId' => [
7353                  'location' => 'query',
7354                  'type' => 'string',
7355                ],
7356              ],
7357            ],'updatePeering' => [
7358              'path' => 'projects/{project}/global/networks/{network}/updatePeering',
7359              'httpMethod' => 'PATCH',
7360              'parameters' => [
7361                'project' => [
7362                  'location' => 'path',
7363                  'type' => 'string',
7364                  'required' => true,
7365                ],
7366                'network' => [
7367                  'location' => 'path',
7368                  'type' => 'string',
7369                  'required' => true,
7370                ],
7371                'requestId' => [
7372                  'location' => 'query',
7373                  'type' => 'string',
7374                ],
7375              ],
7376            ],
7377          ]
7378        ]
7379    );
7380    $this->nodeGroups = new Compute\Resource\NodeGroups(
7381        $this,
7382        $this->serviceName,
7383        'nodeGroups',
7384        [
7385          'methods' => [
7386            'addNodes' => [
7387              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes',
7388              'httpMethod' => 'POST',
7389              'parameters' => [
7390                'project' => [
7391                  'location' => 'path',
7392                  'type' => 'string',
7393                  'required' => true,
7394                ],
7395                'zone' => [
7396                  'location' => 'path',
7397                  'type' => 'string',
7398                  'required' => true,
7399                ],
7400                'nodeGroup' => [
7401                  'location' => 'path',
7402                  'type' => 'string',
7403                  'required' => true,
7404                ],
7405                'requestId' => [
7406                  'location' => 'query',
7407                  'type' => 'string',
7408                ],
7409              ],
7410            ],'aggregatedList' => [
7411              'path' => 'projects/{project}/aggregated/nodeGroups',
7412              'httpMethod' => 'GET',
7413              'parameters' => [
7414                'project' => [
7415                  'location' => 'path',
7416                  'type' => 'string',
7417                  'required' => true,
7418                ],
7419                'filter' => [
7420                  'location' => 'query',
7421                  'type' => 'string',
7422                ],
7423                'includeAllScopes' => [
7424                  'location' => 'query',
7425                  'type' => 'boolean',
7426                ],
7427                'maxResults' => [
7428                  'location' => 'query',
7429                  'type' => 'integer',
7430                ],
7431                'orderBy' => [
7432                  'location' => 'query',
7433                  'type' => 'string',
7434                ],
7435                'pageToken' => [
7436                  'location' => 'query',
7437                  'type' => 'string',
7438                ],
7439                'returnPartialSuccess' => [
7440                  'location' => 'query',
7441                  'type' => 'boolean',
7442                ],
7443              ],
7444            ],'delete' => [
7445              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}',
7446              'httpMethod' => 'DELETE',
7447              'parameters' => [
7448                'project' => [
7449                  'location' => 'path',
7450                  'type' => 'string',
7451                  'required' => true,
7452                ],
7453                'zone' => [
7454                  'location' => 'path',
7455                  'type' => 'string',
7456                  'required' => true,
7457                ],
7458                'nodeGroup' => [
7459                  'location' => 'path',
7460                  'type' => 'string',
7461                  'required' => true,
7462                ],
7463                'requestId' => [
7464                  'location' => 'query',
7465                  'type' => 'string',
7466                ],
7467              ],
7468            ],'deleteNodes' => [
7469              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes',
7470              'httpMethod' => 'POST',
7471              'parameters' => [
7472                'project' => [
7473                  'location' => 'path',
7474                  'type' => 'string',
7475                  'required' => true,
7476                ],
7477                'zone' => [
7478                  'location' => 'path',
7479                  'type' => 'string',
7480                  'required' => true,
7481                ],
7482                'nodeGroup' => [
7483                  'location' => 'path',
7484                  'type' => 'string',
7485                  'required' => true,
7486                ],
7487                'requestId' => [
7488                  'location' => 'query',
7489                  'type' => 'string',
7490                ],
7491              ],
7492            ],'get' => [
7493              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}',
7494              'httpMethod' => 'GET',
7495              'parameters' => [
7496                'project' => [
7497                  'location' => 'path',
7498                  'type' => 'string',
7499                  'required' => true,
7500                ],
7501                'zone' => [
7502                  'location' => 'path',
7503                  'type' => 'string',
7504                  'required' => true,
7505                ],
7506                'nodeGroup' => [
7507                  'location' => 'path',
7508                  'type' => 'string',
7509                  'required' => true,
7510                ],
7511              ],
7512            ],'getIamPolicy' => [
7513              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy',
7514              'httpMethod' => 'GET',
7515              'parameters' => [
7516                'project' => [
7517                  'location' => 'path',
7518                  'type' => 'string',
7519                  'required' => true,
7520                ],
7521                'zone' => [
7522                  'location' => 'path',
7523                  'type' => 'string',
7524                  'required' => true,
7525                ],
7526                'resource' => [
7527                  'location' => 'path',
7528                  'type' => 'string',
7529                  'required' => true,
7530                ],
7531                'optionsRequestedPolicyVersion' => [
7532                  'location' => 'query',
7533                  'type' => 'integer',
7534                ],
7535              ],
7536            ],'insert' => [
7537              'path' => 'projects/{project}/zones/{zone}/nodeGroups',
7538              'httpMethod' => 'POST',
7539              'parameters' => [
7540                'project' => [
7541                  'location' => 'path',
7542                  'type' => 'string',
7543                  'required' => true,
7544                ],
7545                'zone' => [
7546                  'location' => 'path',
7547                  'type' => 'string',
7548                  'required' => true,
7549                ],
7550                'initialNodeCount' => [
7551                  'location' => 'query',
7552                  'type' => 'integer',
7553                  'required' => true,
7554                ],
7555                'requestId' => [
7556                  'location' => 'query',
7557                  'type' => 'string',
7558                ],
7559              ],
7560            ],'list' => [
7561              'path' => 'projects/{project}/zones/{zone}/nodeGroups',
7562              'httpMethod' => 'GET',
7563              'parameters' => [
7564                'project' => [
7565                  'location' => 'path',
7566                  'type' => 'string',
7567                  'required' => true,
7568                ],
7569                'zone' => [
7570                  'location' => 'path',
7571                  'type' => 'string',
7572                  'required' => true,
7573                ],
7574                'filter' => [
7575                  'location' => 'query',
7576                  'type' => 'string',
7577                ],
7578                'maxResults' => [
7579                  'location' => 'query',
7580                  'type' => 'integer',
7581                ],
7582                'orderBy' => [
7583                  'location' => 'query',
7584                  'type' => 'string',
7585                ],
7586                'pageToken' => [
7587                  'location' => 'query',
7588                  'type' => 'string',
7589                ],
7590                'returnPartialSuccess' => [
7591                  'location' => 'query',
7592                  'type' => 'boolean',
7593                ],
7594              ],
7595            ],'listNodes' => [
7596              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes',
7597              'httpMethod' => 'POST',
7598              'parameters' => [
7599                'project' => [
7600                  'location' => 'path',
7601                  'type' => 'string',
7602                  'required' => true,
7603                ],
7604                'zone' => [
7605                  'location' => 'path',
7606                  'type' => 'string',
7607                  'required' => true,
7608                ],
7609                'nodeGroup' => [
7610                  'location' => 'path',
7611                  'type' => 'string',
7612                  'required' => true,
7613                ],
7614                'filter' => [
7615                  'location' => 'query',
7616                  'type' => 'string',
7617                ],
7618                'maxResults' => [
7619                  'location' => 'query',
7620                  'type' => 'integer',
7621                ],
7622                'orderBy' => [
7623                  'location' => 'query',
7624                  'type' => 'string',
7625                ],
7626                'pageToken' => [
7627                  'location' => 'query',
7628                  'type' => 'string',
7629                ],
7630                'returnPartialSuccess' => [
7631                  'location' => 'query',
7632                  'type' => 'boolean',
7633                ],
7634              ],
7635            ],'patch' => [
7636              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}',
7637              'httpMethod' => 'PATCH',
7638              'parameters' => [
7639                'project' => [
7640                  'location' => 'path',
7641                  'type' => 'string',
7642                  'required' => true,
7643                ],
7644                'zone' => [
7645                  'location' => 'path',
7646                  'type' => 'string',
7647                  'required' => true,
7648                ],
7649                'nodeGroup' => [
7650                  'location' => 'path',
7651                  'type' => 'string',
7652                  'required' => true,
7653                ],
7654                'requestId' => [
7655                  'location' => 'query',
7656                  'type' => 'string',
7657                ],
7658              ],
7659            ],'setIamPolicy' => [
7660              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy',
7661              'httpMethod' => 'POST',
7662              'parameters' => [
7663                'project' => [
7664                  'location' => 'path',
7665                  'type' => 'string',
7666                  'required' => true,
7667                ],
7668                'zone' => [
7669                  'location' => 'path',
7670                  'type' => 'string',
7671                  'required' => true,
7672                ],
7673                'resource' => [
7674                  'location' => 'path',
7675                  'type' => 'string',
7676                  'required' => true,
7677                ],
7678              ],
7679            ],'setNodeTemplate' => [
7680              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate',
7681              'httpMethod' => 'POST',
7682              'parameters' => [
7683                'project' => [
7684                  'location' => 'path',
7685                  'type' => 'string',
7686                  'required' => true,
7687                ],
7688                'zone' => [
7689                  'location' => 'path',
7690                  'type' => 'string',
7691                  'required' => true,
7692                ],
7693                'nodeGroup' => [
7694                  'location' => 'path',
7695                  'type' => 'string',
7696                  'required' => true,
7697                ],
7698                'requestId' => [
7699                  'location' => 'query',
7700                  'type' => 'string',
7701                ],
7702              ],
7703            ],'testIamPermissions' => [
7704              'path' => 'projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions',
7705              'httpMethod' => 'POST',
7706              'parameters' => [
7707                'project' => [
7708                  'location' => 'path',
7709                  'type' => 'string',
7710                  'required' => true,
7711                ],
7712                'zone' => [
7713                  'location' => 'path',
7714                  'type' => 'string',
7715                  'required' => true,
7716                ],
7717                'resource' => [
7718                  'location' => 'path',
7719                  'type' => 'string',
7720                  'required' => true,
7721                ],
7722              ],
7723            ],
7724          ]
7725        ]
7726    );
7727    $this->nodeTemplates = new Compute\Resource\NodeTemplates(
7728        $this,
7729        $this->serviceName,
7730        'nodeTemplates',
7731        [
7732          'methods' => [
7733            'aggregatedList' => [
7734              'path' => 'projects/{project}/aggregated/nodeTemplates',
7735              'httpMethod' => 'GET',
7736              'parameters' => [
7737                'project' => [
7738                  'location' => 'path',
7739                  'type' => 'string',
7740                  'required' => true,
7741                ],
7742                'filter' => [
7743                  'location' => 'query',
7744                  'type' => 'string',
7745                ],
7746                'includeAllScopes' => [
7747                  'location' => 'query',
7748                  'type' => 'boolean',
7749                ],
7750                'maxResults' => [
7751                  'location' => 'query',
7752                  'type' => 'integer',
7753                ],
7754                'orderBy' => [
7755                  'location' => 'query',
7756                  'type' => 'string',
7757                ],
7758                'pageToken' => [
7759                  'location' => 'query',
7760                  'type' => 'string',
7761                ],
7762                'returnPartialSuccess' => [
7763                  'location' => 'query',
7764                  'type' => 'boolean',
7765                ],
7766              ],
7767            ],'delete' => [
7768              'path' => 'projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}',
7769              'httpMethod' => 'DELETE',
7770              'parameters' => [
7771                'project' => [
7772                  'location' => 'path',
7773                  'type' => 'string',
7774                  'required' => true,
7775                ],
7776                'region' => [
7777                  'location' => 'path',
7778                  'type' => 'string',
7779                  'required' => true,
7780                ],
7781                'nodeTemplate' => [
7782                  'location' => 'path',
7783                  'type' => 'string',
7784                  'required' => true,
7785                ],
7786                'requestId' => [
7787                  'location' => 'query',
7788                  'type' => 'string',
7789                ],
7790              ],
7791            ],'get' => [
7792              'path' => 'projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}',
7793              'httpMethod' => 'GET',
7794              'parameters' => [
7795                'project' => [
7796                  'location' => 'path',
7797                  'type' => 'string',
7798                  'required' => true,
7799                ],
7800                'region' => [
7801                  'location' => 'path',
7802                  'type' => 'string',
7803                  'required' => true,
7804                ],
7805                'nodeTemplate' => [
7806                  'location' => 'path',
7807                  'type' => 'string',
7808                  'required' => true,
7809                ],
7810              ],
7811            ],'getIamPolicy' => [
7812              'path' => 'projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy',
7813              'httpMethod' => 'GET',
7814              'parameters' => [
7815                'project' => [
7816                  'location' => 'path',
7817                  'type' => 'string',
7818                  'required' => true,
7819                ],
7820                'region' => [
7821                  'location' => 'path',
7822                  'type' => 'string',
7823                  'required' => true,
7824                ],
7825                'resource' => [
7826                  'location' => 'path',
7827                  'type' => 'string',
7828                  'required' => true,
7829                ],
7830                'optionsRequestedPolicyVersion' => [
7831                  'location' => 'query',
7832                  'type' => 'integer',
7833                ],
7834              ],
7835            ],'insert' => [
7836              'path' => 'projects/{project}/regions/{region}/nodeTemplates',
7837              'httpMethod' => 'POST',
7838              'parameters' => [
7839                'project' => [
7840                  'location' => 'path',
7841                  'type' => 'string',
7842                  'required' => true,
7843                ],
7844                'region' => [
7845                  'location' => 'path',
7846                  'type' => 'string',
7847                  'required' => true,
7848                ],
7849                'requestId' => [
7850                  'location' => 'query',
7851                  'type' => 'string',
7852                ],
7853              ],
7854            ],'list' => [
7855              'path' => 'projects/{project}/regions/{region}/nodeTemplates',
7856              'httpMethod' => 'GET',
7857              'parameters' => [
7858                'project' => [
7859                  'location' => 'path',
7860                  'type' => 'string',
7861                  'required' => true,
7862                ],
7863                'region' => [
7864                  'location' => 'path',
7865                  'type' => 'string',
7866                  'required' => true,
7867                ],
7868                'filter' => [
7869                  'location' => 'query',
7870                  'type' => 'string',
7871                ],
7872                'maxResults' => [
7873                  'location' => 'query',
7874                  'type' => 'integer',
7875                ],
7876                'orderBy' => [
7877                  'location' => 'query',
7878                  'type' => 'string',
7879                ],
7880                'pageToken' => [
7881                  'location' => 'query',
7882                  'type' => 'string',
7883                ],
7884                'returnPartialSuccess' => [
7885                  'location' => 'query',
7886                  'type' => 'boolean',
7887                ],
7888              ],
7889            ],'setIamPolicy' => [
7890              'path' => 'projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy',
7891              'httpMethod' => 'POST',
7892              'parameters' => [
7893                'project' => [
7894                  'location' => 'path',
7895                  'type' => 'string',
7896                  'required' => true,
7897                ],
7898                'region' => [
7899                  'location' => 'path',
7900                  'type' => 'string',
7901                  'required' => true,
7902                ],
7903                'resource' => [
7904                  'location' => 'path',
7905                  'type' => 'string',
7906                  'required' => true,
7907                ],
7908              ],
7909            ],'testIamPermissions' => [
7910              'path' => 'projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions',
7911              'httpMethod' => 'POST',
7912              'parameters' => [
7913                'project' => [
7914                  'location' => 'path',
7915                  'type' => 'string',
7916                  'required' => true,
7917                ],
7918                'region' => [
7919                  'location' => 'path',
7920                  'type' => 'string',
7921                  'required' => true,
7922                ],
7923                'resource' => [
7924                  'location' => 'path',
7925                  'type' => 'string',
7926                  'required' => true,
7927                ],
7928              ],
7929            ],
7930          ]
7931        ]
7932    );
7933    $this->nodeTypes = new Compute\Resource\NodeTypes(
7934        $this,
7935        $this->serviceName,
7936        'nodeTypes',
7937        [
7938          'methods' => [
7939            'aggregatedList' => [
7940              'path' => 'projects/{project}/aggregated/nodeTypes',
7941              'httpMethod' => 'GET',
7942              'parameters' => [
7943                'project' => [
7944                  'location' => 'path',
7945                  'type' => 'string',
7946                  'required' => true,
7947                ],
7948                'filter' => [
7949                  'location' => 'query',
7950                  'type' => 'string',
7951                ],
7952                'includeAllScopes' => [
7953                  'location' => 'query',
7954                  'type' => 'boolean',
7955                ],
7956                'maxResults' => [
7957                  'location' => 'query',
7958                  'type' => 'integer',
7959                ],
7960                'orderBy' => [
7961                  'location' => 'query',
7962                  'type' => 'string',
7963                ],
7964                'pageToken' => [
7965                  'location' => 'query',
7966                  'type' => 'string',
7967                ],
7968                'returnPartialSuccess' => [
7969                  'location' => 'query',
7970                  'type' => 'boolean',
7971                ],
7972              ],
7973            ],'get' => [
7974              'path' => 'projects/{project}/zones/{zone}/nodeTypes/{nodeType}',
7975              'httpMethod' => 'GET',
7976              'parameters' => [
7977                'project' => [
7978                  'location' => 'path',
7979                  'type' => 'string',
7980                  'required' => true,
7981                ],
7982                'zone' => [
7983                  'location' => 'path',
7984                  'type' => 'string',
7985                  'required' => true,
7986                ],
7987                'nodeType' => [
7988                  'location' => 'path',
7989                  'type' => 'string',
7990                  'required' => true,
7991                ],
7992              ],
7993            ],'list' => [
7994              'path' => 'projects/{project}/zones/{zone}/nodeTypes',
7995              'httpMethod' => 'GET',
7996              'parameters' => [
7997                'project' => [
7998                  'location' => 'path',
7999                  'type' => 'string',
8000                  'required' => true,
8001                ],
8002                'zone' => [
8003                  'location' => 'path',
8004                  'type' => 'string',
8005                  'required' => true,
8006                ],
8007                'filter' => [
8008                  'location' => 'query',
8009                  'type' => 'string',
8010                ],
8011                'maxResults' => [
8012                  'location' => 'query',
8013                  'type' => 'integer',
8014                ],
8015                'orderBy' => [
8016                  'location' => 'query',
8017                  'type' => 'string',
8018                ],
8019                'pageToken' => [
8020                  'location' => 'query',
8021                  'type' => 'string',
8022                ],
8023                'returnPartialSuccess' => [
8024                  'location' => 'query',
8025                  'type' => 'boolean',
8026                ],
8027              ],
8028            ],
8029          ]
8030        ]
8031    );
8032    $this->packetMirrorings = new Compute\Resource\PacketMirrorings(
8033        $this,
8034        $this->serviceName,
8035        'packetMirrorings',
8036        [
8037          'methods' => [
8038            'aggregatedList' => [
8039              'path' => 'projects/{project}/aggregated/packetMirrorings',
8040              'httpMethod' => 'GET',
8041              'parameters' => [
8042                'project' => [
8043                  'location' => 'path',
8044                  'type' => 'string',
8045                  'required' => true,
8046                ],
8047                'filter' => [
8048                  'location' => 'query',
8049                  'type' => 'string',
8050                ],
8051                'includeAllScopes' => [
8052                  'location' => 'query',
8053                  'type' => 'boolean',
8054                ],
8055                'maxResults' => [
8056                  'location' => 'query',
8057                  'type' => 'integer',
8058                ],
8059                'orderBy' => [
8060                  'location' => 'query',
8061                  'type' => 'string',
8062                ],
8063                'pageToken' => [
8064                  'location' => 'query',
8065                  'type' => 'string',
8066                ],
8067                'returnPartialSuccess' => [
8068                  'location' => 'query',
8069                  'type' => 'boolean',
8070                ],
8071              ],
8072            ],'delete' => [
8073              'path' => 'projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}',
8074              'httpMethod' => 'DELETE',
8075              'parameters' => [
8076                'project' => [
8077                  'location' => 'path',
8078                  'type' => 'string',
8079                  'required' => true,
8080                ],
8081                'region' => [
8082                  'location' => 'path',
8083                  'type' => 'string',
8084                  'required' => true,
8085                ],
8086                'packetMirroring' => [
8087                  'location' => 'path',
8088                  'type' => 'string',
8089                  'required' => true,
8090                ],
8091                'requestId' => [
8092                  'location' => 'query',
8093                  'type' => 'string',
8094                ],
8095              ],
8096            ],'get' => [
8097              'path' => 'projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}',
8098              'httpMethod' => 'GET',
8099              'parameters' => [
8100                'project' => [
8101                  'location' => 'path',
8102                  'type' => 'string',
8103                  'required' => true,
8104                ],
8105                'region' => [
8106                  'location' => 'path',
8107                  'type' => 'string',
8108                  'required' => true,
8109                ],
8110                'packetMirroring' => [
8111                  'location' => 'path',
8112                  'type' => 'string',
8113                  'required' => true,
8114                ],
8115              ],
8116            ],'insert' => [
8117              'path' => 'projects/{project}/regions/{region}/packetMirrorings',
8118              'httpMethod' => 'POST',
8119              'parameters' => [
8120                'project' => [
8121                  'location' => 'path',
8122                  'type' => 'string',
8123                  'required' => true,
8124                ],
8125                'region' => [
8126                  'location' => 'path',
8127                  'type' => 'string',
8128                  'required' => true,
8129                ],
8130                'requestId' => [
8131                  'location' => 'query',
8132                  'type' => 'string',
8133                ],
8134              ],
8135            ],'list' => [
8136              'path' => 'projects/{project}/regions/{region}/packetMirrorings',
8137              'httpMethod' => 'GET',
8138              'parameters' => [
8139                'project' => [
8140                  'location' => 'path',
8141                  'type' => 'string',
8142                  'required' => true,
8143                ],
8144                'region' => [
8145                  'location' => 'path',
8146                  'type' => 'string',
8147                  'required' => true,
8148                ],
8149                'filter' => [
8150                  'location' => 'query',
8151                  'type' => 'string',
8152                ],
8153                'maxResults' => [
8154                  'location' => 'query',
8155                  'type' => 'integer',
8156                ],
8157                'orderBy' => [
8158                  'location' => 'query',
8159                  'type' => 'string',
8160                ],
8161                'pageToken' => [
8162                  'location' => 'query',
8163                  'type' => 'string',
8164                ],
8165                'returnPartialSuccess' => [
8166                  'location' => 'query',
8167                  'type' => 'boolean',
8168                ],
8169              ],
8170            ],'patch' => [
8171              'path' => 'projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}',
8172              'httpMethod' => 'PATCH',
8173              'parameters' => [
8174                'project' => [
8175                  'location' => 'path',
8176                  'type' => 'string',
8177                  'required' => true,
8178                ],
8179                'region' => [
8180                  'location' => 'path',
8181                  'type' => 'string',
8182                  'required' => true,
8183                ],
8184                'packetMirroring' => [
8185                  'location' => 'path',
8186                  'type' => 'string',
8187                  'required' => true,
8188                ],
8189                'requestId' => [
8190                  'location' => 'query',
8191                  'type' => 'string',
8192                ],
8193              ],
8194            ],'testIamPermissions' => [
8195              'path' => 'projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions',
8196              'httpMethod' => 'POST',
8197              'parameters' => [
8198                'project' => [
8199                  'location' => 'path',
8200                  'type' => 'string',
8201                  'required' => true,
8202                ],
8203                'region' => [
8204                  'location' => 'path',
8205                  'type' => 'string',
8206                  'required' => true,
8207                ],
8208                'resource' => [
8209                  'location' => 'path',
8210                  'type' => 'string',
8211                  'required' => true,
8212                ],
8213              ],
8214            ],
8215          ]
8216        ]
8217    );
8218    $this->projects = new Compute\Resource\Projects(
8219        $this,
8220        $this->serviceName,
8221        'projects',
8222        [
8223          'methods' => [
8224            'disableXpnHost' => [
8225              'path' => 'projects/{project}/disableXpnHost',
8226              'httpMethod' => 'POST',
8227              'parameters' => [
8228                'project' => [
8229                  'location' => 'path',
8230                  'type' => 'string',
8231                  'required' => true,
8232                ],
8233                'requestId' => [
8234                  'location' => 'query',
8235                  'type' => 'string',
8236                ],
8237              ],
8238            ],'disableXpnResource' => [
8239              'path' => 'projects/{project}/disableXpnResource',
8240              'httpMethod' => 'POST',
8241              'parameters' => [
8242                'project' => [
8243                  'location' => 'path',
8244                  'type' => 'string',
8245                  'required' => true,
8246                ],
8247                'requestId' => [
8248                  'location' => 'query',
8249                  'type' => 'string',
8250                ],
8251              ],
8252            ],'enableXpnHost' => [
8253              'path' => 'projects/{project}/enableXpnHost',
8254              'httpMethod' => 'POST',
8255              'parameters' => [
8256                'project' => [
8257                  'location' => 'path',
8258                  'type' => 'string',
8259                  'required' => true,
8260                ],
8261                'requestId' => [
8262                  'location' => 'query',
8263                  'type' => 'string',
8264                ],
8265              ],
8266            ],'enableXpnResource' => [
8267              'path' => 'projects/{project}/enableXpnResource',
8268              'httpMethod' => 'POST',
8269              'parameters' => [
8270                'project' => [
8271                  'location' => 'path',
8272                  'type' => 'string',
8273                  'required' => true,
8274                ],
8275                'requestId' => [
8276                  'location' => 'query',
8277                  'type' => 'string',
8278                ],
8279              ],
8280            ],'get' => [
8281              'path' => 'projects/{project}',
8282              'httpMethod' => 'GET',
8283              'parameters' => [
8284                'project' => [
8285                  'location' => 'path',
8286                  'type' => 'string',
8287                  'required' => true,
8288                ],
8289              ],
8290            ],'getXpnHost' => [
8291              'path' => 'projects/{project}/getXpnHost',
8292              'httpMethod' => 'GET',
8293              'parameters' => [
8294                'project' => [
8295                  'location' => 'path',
8296                  'type' => 'string',
8297                  'required' => true,
8298                ],
8299              ],
8300            ],'getXpnResources' => [
8301              'path' => 'projects/{project}/getXpnResources',
8302              'httpMethod' => 'GET',
8303              'parameters' => [
8304                'project' => [
8305                  'location' => 'path',
8306                  'type' => 'string',
8307                  'required' => true,
8308                ],
8309                'filter' => [
8310                  'location' => 'query',
8311                  'type' => 'string',
8312                ],
8313                'maxResults' => [
8314                  'location' => 'query',
8315                  'type' => 'integer',
8316                ],
8317                'orderBy' => [
8318                  'location' => 'query',
8319                  'type' => 'string',
8320                ],
8321                'pageToken' => [
8322                  'location' => 'query',
8323                  'type' => 'string',
8324                ],
8325                'returnPartialSuccess' => [
8326                  'location' => 'query',
8327                  'type' => 'boolean',
8328                ],
8329              ],
8330            ],'listXpnHosts' => [
8331              'path' => 'projects/{project}/listXpnHosts',
8332              'httpMethod' => 'POST',
8333              'parameters' => [
8334                'project' => [
8335                  'location' => 'path',
8336                  'type' => 'string',
8337                  'required' => true,
8338                ],
8339                'filter' => [
8340                  'location' => 'query',
8341                  'type' => 'string',
8342                ],
8343                'maxResults' => [
8344                  'location' => 'query',
8345                  'type' => 'integer',
8346                ],
8347                'orderBy' => [
8348                  'location' => 'query',
8349                  'type' => 'string',
8350                ],
8351                'pageToken' => [
8352                  'location' => 'query',
8353                  'type' => 'string',
8354                ],
8355                'returnPartialSuccess' => [
8356                  'location' => 'query',
8357                  'type' => 'boolean',
8358                ],
8359              ],
8360            ],'moveDisk' => [
8361              'path' => 'projects/{project}/moveDisk',
8362              'httpMethod' => 'POST',
8363              'parameters' => [
8364                'project' => [
8365                  'location' => 'path',
8366                  'type' => 'string',
8367                  'required' => true,
8368                ],
8369                'requestId' => [
8370                  'location' => 'query',
8371                  'type' => 'string',
8372                ],
8373              ],
8374            ],'moveInstance' => [
8375              'path' => 'projects/{project}/moveInstance',
8376              'httpMethod' => 'POST',
8377              'parameters' => [
8378                'project' => [
8379                  'location' => 'path',
8380                  'type' => 'string',
8381                  'required' => true,
8382                ],
8383                'requestId' => [
8384                  'location' => 'query',
8385                  'type' => 'string',
8386                ],
8387              ],
8388            ],'setCommonInstanceMetadata' => [
8389              'path' => 'projects/{project}/setCommonInstanceMetadata',
8390              'httpMethod' => 'POST',
8391              'parameters' => [
8392                'project' => [
8393                  'location' => 'path',
8394                  'type' => 'string',
8395                  'required' => true,
8396                ],
8397                'requestId' => [
8398                  'location' => 'query',
8399                  'type' => 'string',
8400                ],
8401              ],
8402            ],'setDefaultNetworkTier' => [
8403              'path' => 'projects/{project}/setDefaultNetworkTier',
8404              'httpMethod' => 'POST',
8405              'parameters' => [
8406                'project' => [
8407                  'location' => 'path',
8408                  'type' => 'string',
8409                  'required' => true,
8410                ],
8411                'requestId' => [
8412                  'location' => 'query',
8413                  'type' => 'string',
8414                ],
8415              ],
8416            ],'setUsageExportBucket' => [
8417              'path' => 'projects/{project}/setUsageExportBucket',
8418              'httpMethod' => 'POST',
8419              'parameters' => [
8420                'project' => [
8421                  'location' => 'path',
8422                  'type' => 'string',
8423                  'required' => true,
8424                ],
8425                'requestId' => [
8426                  'location' => 'query',
8427                  'type' => 'string',
8428                ],
8429              ],
8430            ],
8431          ]
8432        ]
8433    );
8434    $this->publicAdvertisedPrefixes = new Compute\Resource\PublicAdvertisedPrefixes(
8435        $this,
8436        $this->serviceName,
8437        'publicAdvertisedPrefixes',
8438        [
8439          'methods' => [
8440            'delete' => [
8441              'path' => 'projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}',
8442              'httpMethod' => 'DELETE',
8443              'parameters' => [
8444                'project' => [
8445                  'location' => 'path',
8446                  'type' => 'string',
8447                  'required' => true,
8448                ],
8449                'publicAdvertisedPrefix' => [
8450                  'location' => 'path',
8451                  'type' => 'string',
8452                  'required' => true,
8453                ],
8454                'requestId' => [
8455                  'location' => 'query',
8456                  'type' => 'string',
8457                ],
8458              ],
8459            ],'get' => [
8460              'path' => 'projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}',
8461              'httpMethod' => 'GET',
8462              'parameters' => [
8463                'project' => [
8464                  'location' => 'path',
8465                  'type' => 'string',
8466                  'required' => true,
8467                ],
8468                'publicAdvertisedPrefix' => [
8469                  'location' => 'path',
8470                  'type' => 'string',
8471                  'required' => true,
8472                ],
8473              ],
8474            ],'insert' => [
8475              'path' => 'projects/{project}/global/publicAdvertisedPrefixes',
8476              'httpMethod' => 'POST',
8477              'parameters' => [
8478                'project' => [
8479                  'location' => 'path',
8480                  'type' => 'string',
8481                  'required' => true,
8482                ],
8483                'requestId' => [
8484                  'location' => 'query',
8485                  'type' => 'string',
8486                ],
8487              ],
8488            ],'list' => [
8489              'path' => 'projects/{project}/global/publicAdvertisedPrefixes',
8490              'httpMethod' => 'GET',
8491              'parameters' => [
8492                'project' => [
8493                  'location' => 'path',
8494                  'type' => 'string',
8495                  'required' => true,
8496                ],
8497                'filter' => [
8498                  'location' => 'query',
8499                  'type' => 'string',
8500                ],
8501                'maxResults' => [
8502                  'location' => 'query',
8503                  'type' => 'integer',
8504                ],
8505                'orderBy' => [
8506                  'location' => 'query',
8507                  'type' => 'string',
8508                ],
8509                'pageToken' => [
8510                  'location' => 'query',
8511                  'type' => 'string',
8512                ],
8513                'returnPartialSuccess' => [
8514                  'location' => 'query',
8515                  'type' => 'boolean',
8516                ],
8517              ],
8518            ],'patch' => [
8519              'path' => 'projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}',
8520              'httpMethod' => 'PATCH',
8521              'parameters' => [
8522                'project' => [
8523                  'location' => 'path',
8524                  'type' => 'string',
8525                  'required' => true,
8526                ],
8527                'publicAdvertisedPrefix' => [
8528                  'location' => 'path',
8529                  'type' => 'string',
8530                  'required' => true,
8531                ],
8532                'requestId' => [
8533                  'location' => 'query',
8534                  'type' => 'string',
8535                ],
8536              ],
8537            ],
8538          ]
8539        ]
8540    );
8541    $this->publicDelegatedPrefixes = new Compute\Resource\PublicDelegatedPrefixes(
8542        $this,
8543        $this->serviceName,
8544        'publicDelegatedPrefixes',
8545        [
8546          'methods' => [
8547            'aggregatedList' => [
8548              'path' => 'projects/{project}/aggregated/publicDelegatedPrefixes',
8549              'httpMethod' => 'GET',
8550              'parameters' => [
8551                'project' => [
8552                  'location' => 'path',
8553                  'type' => 'string',
8554                  'required' => true,
8555                ],
8556                'filter' => [
8557                  'location' => 'query',
8558                  'type' => 'string',
8559                ],
8560                'includeAllScopes' => [
8561                  'location' => 'query',
8562                  'type' => 'boolean',
8563                ],
8564                'maxResults' => [
8565                  'location' => 'query',
8566                  'type' => 'integer',
8567                ],
8568                'orderBy' => [
8569                  'location' => 'query',
8570                  'type' => 'string',
8571                ],
8572                'pageToken' => [
8573                  'location' => 'query',
8574                  'type' => 'string',
8575                ],
8576                'returnPartialSuccess' => [
8577                  'location' => 'query',
8578                  'type' => 'boolean',
8579                ],
8580              ],
8581            ],'delete' => [
8582              'path' => 'projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}',
8583              'httpMethod' => 'DELETE',
8584              'parameters' => [
8585                'project' => [
8586                  'location' => 'path',
8587                  'type' => 'string',
8588                  'required' => true,
8589                ],
8590                'region' => [
8591                  'location' => 'path',
8592                  'type' => 'string',
8593                  'required' => true,
8594                ],
8595                'publicDelegatedPrefix' => [
8596                  'location' => 'path',
8597                  'type' => 'string',
8598                  'required' => true,
8599                ],
8600                'requestId' => [
8601                  'location' => 'query',
8602                  'type' => 'string',
8603                ],
8604              ],
8605            ],'get' => [
8606              'path' => 'projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}',
8607              'httpMethod' => 'GET',
8608              'parameters' => [
8609                'project' => [
8610                  'location' => 'path',
8611                  'type' => 'string',
8612                  'required' => true,
8613                ],
8614                'region' => [
8615                  'location' => 'path',
8616                  'type' => 'string',
8617                  'required' => true,
8618                ],
8619                'publicDelegatedPrefix' => [
8620                  'location' => 'path',
8621                  'type' => 'string',
8622                  'required' => true,
8623                ],
8624              ],
8625            ],'insert' => [
8626              'path' => 'projects/{project}/regions/{region}/publicDelegatedPrefixes',
8627              'httpMethod' => 'POST',
8628              'parameters' => [
8629                'project' => [
8630                  'location' => 'path',
8631                  'type' => 'string',
8632                  'required' => true,
8633                ],
8634                'region' => [
8635                  'location' => 'path',
8636                  'type' => 'string',
8637                  'required' => true,
8638                ],
8639                'requestId' => [
8640                  'location' => 'query',
8641                  'type' => 'string',
8642                ],
8643              ],
8644            ],'list' => [
8645              'path' => 'projects/{project}/regions/{region}/publicDelegatedPrefixes',
8646              'httpMethod' => 'GET',
8647              'parameters' => [
8648                'project' => [
8649                  'location' => 'path',
8650                  'type' => 'string',
8651                  'required' => true,
8652                ],
8653                'region' => [
8654                  'location' => 'path',
8655                  'type' => 'string',
8656                  'required' => true,
8657                ],
8658                'filter' => [
8659                  'location' => 'query',
8660                  'type' => 'string',
8661                ],
8662                'maxResults' => [
8663                  'location' => 'query',
8664                  'type' => 'integer',
8665                ],
8666                'orderBy' => [
8667                  'location' => 'query',
8668                  'type' => 'string',
8669                ],
8670                'pageToken' => [
8671                  'location' => 'query',
8672                  'type' => 'string',
8673                ],
8674                'returnPartialSuccess' => [
8675                  'location' => 'query',
8676                  'type' => 'boolean',
8677                ],
8678              ],
8679            ],'patch' => [
8680              'path' => 'projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}',
8681              'httpMethod' => 'PATCH',
8682              'parameters' => [
8683                'project' => [
8684                  'location' => 'path',
8685                  'type' => 'string',
8686                  'required' => true,
8687                ],
8688                'region' => [
8689                  'location' => 'path',
8690                  'type' => 'string',
8691                  'required' => true,
8692                ],
8693                'publicDelegatedPrefix' => [
8694                  'location' => 'path',
8695                  'type' => 'string',
8696                  'required' => true,
8697                ],
8698                'requestId' => [
8699                  'location' => 'query',
8700                  'type' => 'string',
8701                ],
8702              ],
8703            ],
8704          ]
8705        ]
8706    );
8707    $this->regionAutoscalers = new Compute\Resource\RegionAutoscalers(
8708        $this,
8709        $this->serviceName,
8710        'regionAutoscalers',
8711        [
8712          'methods' => [
8713            'delete' => [
8714              'path' => 'projects/{project}/regions/{region}/autoscalers/{autoscaler}',
8715              'httpMethod' => 'DELETE',
8716              'parameters' => [
8717                'project' => [
8718                  'location' => 'path',
8719                  'type' => 'string',
8720                  'required' => true,
8721                ],
8722                'region' => [
8723                  'location' => 'path',
8724                  'type' => 'string',
8725                  'required' => true,
8726                ],
8727                'autoscaler' => [
8728                  'location' => 'path',
8729                  'type' => 'string',
8730                  'required' => true,
8731                ],
8732                'requestId' => [
8733                  'location' => 'query',
8734                  'type' => 'string',
8735                ],
8736              ],
8737            ],'get' => [
8738              'path' => 'projects/{project}/regions/{region}/autoscalers/{autoscaler}',
8739              'httpMethod' => 'GET',
8740              'parameters' => [
8741                'project' => [
8742                  'location' => 'path',
8743                  'type' => 'string',
8744                  'required' => true,
8745                ],
8746                'region' => [
8747                  'location' => 'path',
8748                  'type' => 'string',
8749                  'required' => true,
8750                ],
8751                'autoscaler' => [
8752                  'location' => 'path',
8753                  'type' => 'string',
8754                  'required' => true,
8755                ],
8756              ],
8757            ],'insert' => [
8758              'path' => 'projects/{project}/regions/{region}/autoscalers',
8759              'httpMethod' => 'POST',
8760              'parameters' => [
8761                'project' => [
8762                  'location' => 'path',
8763                  'type' => 'string',
8764                  'required' => true,
8765                ],
8766                'region' => [
8767                  'location' => 'path',
8768                  'type' => 'string',
8769                  'required' => true,
8770                ],
8771                'requestId' => [
8772                  'location' => 'query',
8773                  'type' => 'string',
8774                ],
8775              ],
8776            ],'list' => [
8777              'path' => 'projects/{project}/regions/{region}/autoscalers',
8778              'httpMethod' => 'GET',
8779              'parameters' => [
8780                'project' => [
8781                  'location' => 'path',
8782                  'type' => 'string',
8783                  'required' => true,
8784                ],
8785                'region' => [
8786                  'location' => 'path',
8787                  'type' => 'string',
8788                  'required' => true,
8789                ],
8790                'filter' => [
8791                  'location' => 'query',
8792                  'type' => 'string',
8793                ],
8794                'maxResults' => [
8795                  'location' => 'query',
8796                  'type' => 'integer',
8797                ],
8798                'orderBy' => [
8799                  'location' => 'query',
8800                  'type' => 'string',
8801                ],
8802                'pageToken' => [
8803                  'location' => 'query',
8804                  'type' => 'string',
8805                ],
8806                'returnPartialSuccess' => [
8807                  'location' => 'query',
8808                  'type' => 'boolean',
8809                ],
8810              ],
8811            ],'patch' => [
8812              'path' => 'projects/{project}/regions/{region}/autoscalers',
8813              'httpMethod' => 'PATCH',
8814              'parameters' => [
8815                'project' => [
8816                  'location' => 'path',
8817                  'type' => 'string',
8818                  'required' => true,
8819                ],
8820                'region' => [
8821                  'location' => 'path',
8822                  'type' => 'string',
8823                  'required' => true,
8824                ],
8825                'autoscaler' => [
8826                  'location' => 'query',
8827                  'type' => 'string',
8828                ],
8829                'requestId' => [
8830                  'location' => 'query',
8831                  'type' => 'string',
8832                ],
8833              ],
8834            ],'update' => [
8835              'path' => 'projects/{project}/regions/{region}/autoscalers',
8836              'httpMethod' => 'PUT',
8837              'parameters' => [
8838                'project' => [
8839                  'location' => 'path',
8840                  'type' => 'string',
8841                  'required' => true,
8842                ],
8843                'region' => [
8844                  'location' => 'path',
8845                  'type' => 'string',
8846                  'required' => true,
8847                ],
8848                'autoscaler' => [
8849                  'location' => 'query',
8850                  'type' => 'string',
8851                ],
8852                'requestId' => [
8853                  'location' => 'query',
8854                  'type' => 'string',
8855                ],
8856              ],
8857            ],
8858          ]
8859        ]
8860    );
8861    $this->regionBackendServices = new Compute\Resource\RegionBackendServices(
8862        $this,
8863        $this->serviceName,
8864        'regionBackendServices',
8865        [
8866          'methods' => [
8867            'delete' => [
8868              'path' => 'projects/{project}/regions/{region}/backendServices/{backendService}',
8869              'httpMethod' => 'DELETE',
8870              'parameters' => [
8871                'project' => [
8872                  'location' => 'path',
8873                  'type' => 'string',
8874                  'required' => true,
8875                ],
8876                'region' => [
8877                  'location' => 'path',
8878                  'type' => 'string',
8879                  'required' => true,
8880                ],
8881                'backendService' => [
8882                  'location' => 'path',
8883                  'type' => 'string',
8884                  'required' => true,
8885                ],
8886                'requestId' => [
8887                  'location' => 'query',
8888                  'type' => 'string',
8889                ],
8890              ],
8891            ],'get' => [
8892              'path' => 'projects/{project}/regions/{region}/backendServices/{backendService}',
8893              'httpMethod' => 'GET',
8894              'parameters' => [
8895                'project' => [
8896                  'location' => 'path',
8897                  'type' => 'string',
8898                  'required' => true,
8899                ],
8900                'region' => [
8901                  'location' => 'path',
8902                  'type' => 'string',
8903                  'required' => true,
8904                ],
8905                'backendService' => [
8906                  'location' => 'path',
8907                  'type' => 'string',
8908                  'required' => true,
8909                ],
8910              ],
8911            ],'getHealth' => [
8912              'path' => 'projects/{project}/regions/{region}/backendServices/{backendService}/getHealth',
8913              'httpMethod' => 'POST',
8914              'parameters' => [
8915                'project' => [
8916                  'location' => 'path',
8917                  'type' => 'string',
8918                  'required' => true,
8919                ],
8920                'region' => [
8921                  'location' => 'path',
8922                  'type' => 'string',
8923                  'required' => true,
8924                ],
8925                'backendService' => [
8926                  'location' => 'path',
8927                  'type' => 'string',
8928                  'required' => true,
8929                ],
8930              ],
8931            ],'insert' => [
8932              'path' => 'projects/{project}/regions/{region}/backendServices',
8933              'httpMethod' => 'POST',
8934              'parameters' => [
8935                'project' => [
8936                  'location' => 'path',
8937                  'type' => 'string',
8938                  'required' => true,
8939                ],
8940                'region' => [
8941                  'location' => 'path',
8942                  'type' => 'string',
8943                  'required' => true,
8944                ],
8945                'requestId' => [
8946                  'location' => 'query',
8947                  'type' => 'string',
8948                ],
8949              ],
8950            ],'list' => [
8951              'path' => 'projects/{project}/regions/{region}/backendServices',
8952              'httpMethod' => 'GET',
8953              'parameters' => [
8954                'project' => [
8955                  'location' => 'path',
8956                  'type' => 'string',
8957                  'required' => true,
8958                ],
8959                'region' => [
8960                  'location' => 'path',
8961                  'type' => 'string',
8962                  'required' => true,
8963                ],
8964                'filter' => [
8965                  'location' => 'query',
8966                  'type' => 'string',
8967                ],
8968                'maxResults' => [
8969                  'location' => 'query',
8970                  'type' => 'integer',
8971                ],
8972                'orderBy' => [
8973                  'location' => 'query',
8974                  'type' => 'string',
8975                ],
8976                'pageToken' => [
8977                  'location' => 'query',
8978                  'type' => 'string',
8979                ],
8980                'returnPartialSuccess' => [
8981                  'location' => 'query',
8982                  'type' => 'boolean',
8983                ],
8984              ],
8985            ],'patch' => [
8986              'path' => 'projects/{project}/regions/{region}/backendServices/{backendService}',
8987              'httpMethod' => 'PATCH',
8988              'parameters' => [
8989                'project' => [
8990                  'location' => 'path',
8991                  'type' => 'string',
8992                  'required' => true,
8993                ],
8994                'region' => [
8995                  'location' => 'path',
8996                  'type' => 'string',
8997                  'required' => true,
8998                ],
8999                'backendService' => [
9000                  'location' => 'path',
9001                  'type' => 'string',
9002                  'required' => true,
9003                ],
9004                'requestId' => [
9005                  'location' => 'query',
9006                  'type' => 'string',
9007                ],
9008              ],
9009            ],'update' => [
9010              'path' => 'projects/{project}/regions/{region}/backendServices/{backendService}',
9011              'httpMethod' => 'PUT',
9012              'parameters' => [
9013                'project' => [
9014                  'location' => 'path',
9015                  'type' => 'string',
9016                  'required' => true,
9017                ],
9018                'region' => [
9019                  'location' => 'path',
9020                  'type' => 'string',
9021                  'required' => true,
9022                ],
9023                'backendService' => [
9024                  'location' => 'path',
9025                  'type' => 'string',
9026                  'required' => true,
9027                ],
9028                'requestId' => [
9029                  'location' => 'query',
9030                  'type' => 'string',
9031                ],
9032              ],
9033            ],
9034          ]
9035        ]
9036    );
9037    $this->regionCommitments = new Compute\Resource\RegionCommitments(
9038        $this,
9039        $this->serviceName,
9040        'regionCommitments',
9041        [
9042          'methods' => [
9043            'aggregatedList' => [
9044              'path' => 'projects/{project}/aggregated/commitments',
9045              'httpMethod' => 'GET',
9046              'parameters' => [
9047                'project' => [
9048                  'location' => 'path',
9049                  'type' => 'string',
9050                  'required' => true,
9051                ],
9052                'filter' => [
9053                  'location' => 'query',
9054                  'type' => 'string',
9055                ],
9056                'includeAllScopes' => [
9057                  'location' => 'query',
9058                  'type' => 'boolean',
9059                ],
9060                'maxResults' => [
9061                  'location' => 'query',
9062                  'type' => 'integer',
9063                ],
9064                'orderBy' => [
9065                  'location' => 'query',
9066                  'type' => 'string',
9067                ],
9068                'pageToken' => [
9069                  'location' => 'query',
9070                  'type' => 'string',
9071                ],
9072                'returnPartialSuccess' => [
9073                  'location' => 'query',
9074                  'type' => 'boolean',
9075                ],
9076              ],
9077            ],'get' => [
9078              'path' => 'projects/{project}/regions/{region}/commitments/{commitment}',
9079              'httpMethod' => 'GET',
9080              'parameters' => [
9081                'project' => [
9082                  'location' => 'path',
9083                  'type' => 'string',
9084                  'required' => true,
9085                ],
9086                'region' => [
9087                  'location' => 'path',
9088                  'type' => 'string',
9089                  'required' => true,
9090                ],
9091                'commitment' => [
9092                  'location' => 'path',
9093                  'type' => 'string',
9094                  'required' => true,
9095                ],
9096              ],
9097            ],'insert' => [
9098              'path' => 'projects/{project}/regions/{region}/commitments',
9099              'httpMethod' => 'POST',
9100              'parameters' => [
9101                'project' => [
9102                  'location' => 'path',
9103                  'type' => 'string',
9104                  'required' => true,
9105                ],
9106                'region' => [
9107                  'location' => 'path',
9108                  'type' => 'string',
9109                  'required' => true,
9110                ],
9111                'requestId' => [
9112                  'location' => 'query',
9113                  'type' => 'string',
9114                ],
9115              ],
9116            ],'list' => [
9117              'path' => 'projects/{project}/regions/{region}/commitments',
9118              'httpMethod' => 'GET',
9119              'parameters' => [
9120                'project' => [
9121                  'location' => 'path',
9122                  'type' => 'string',
9123                  'required' => true,
9124                ],
9125                'region' => [
9126                  'location' => 'path',
9127                  'type' => 'string',
9128                  'required' => true,
9129                ],
9130                'filter' => [
9131                  'location' => 'query',
9132                  'type' => 'string',
9133                ],
9134                'maxResults' => [
9135                  'location' => 'query',
9136                  'type' => 'integer',
9137                ],
9138                'orderBy' => [
9139                  'location' => 'query',
9140                  'type' => 'string',
9141                ],
9142                'pageToken' => [
9143                  'location' => 'query',
9144                  'type' => 'string',
9145                ],
9146                'returnPartialSuccess' => [
9147                  'location' => 'query',
9148                  'type' => 'boolean',
9149                ],
9150              ],
9151            ],'update' => [
9152              'path' => 'projects/{project}/regions/{region}/commitments/{commitment}',
9153              'httpMethod' => 'PATCH',
9154              'parameters' => [
9155                'project' => [
9156                  'location' => 'path',
9157                  'type' => 'string',
9158                  'required' => true,
9159                ],
9160                'region' => [
9161                  'location' => 'path',
9162                  'type' => 'string',
9163                  'required' => true,
9164                ],
9165                'commitment' => [
9166                  'location' => 'path',
9167                  'type' => 'string',
9168                  'required' => true,
9169                ],
9170                'paths' => [
9171                  'location' => 'query',
9172                  'type' => 'string',
9173                  'repeated' => true,
9174                ],
9175                'requestId' => [
9176                  'location' => 'query',
9177                  'type' => 'string',
9178                ],
9179                'updateMask' => [
9180                  'location' => 'query',
9181                  'type' => 'string',
9182                ],
9183              ],
9184            ],
9185          ]
9186        ]
9187    );
9188    $this->regionDiskTypes = new Compute\Resource\RegionDiskTypes(
9189        $this,
9190        $this->serviceName,
9191        'regionDiskTypes',
9192        [
9193          'methods' => [
9194            'get' => [
9195              'path' => 'projects/{project}/regions/{region}/diskTypes/{diskType}',
9196              'httpMethod' => 'GET',
9197              'parameters' => [
9198                'project' => [
9199                  'location' => 'path',
9200                  'type' => 'string',
9201                  'required' => true,
9202                ],
9203                'region' => [
9204                  'location' => 'path',
9205                  'type' => 'string',
9206                  'required' => true,
9207                ],
9208                'diskType' => [
9209                  'location' => 'path',
9210                  'type' => 'string',
9211                  'required' => true,
9212                ],
9213              ],
9214            ],'list' => [
9215              'path' => 'projects/{project}/regions/{region}/diskTypes',
9216              'httpMethod' => 'GET',
9217              'parameters' => [
9218                'project' => [
9219                  'location' => 'path',
9220                  'type' => 'string',
9221                  'required' => true,
9222                ],
9223                'region' => [
9224                  'location' => 'path',
9225                  'type' => 'string',
9226                  'required' => true,
9227                ],
9228                'filter' => [
9229                  'location' => 'query',
9230                  'type' => 'string',
9231                ],
9232                'maxResults' => [
9233                  'location' => 'query',
9234                  'type' => 'integer',
9235                ],
9236                'orderBy' => [
9237                  'location' => 'query',
9238                  'type' => 'string',
9239                ],
9240                'pageToken' => [
9241                  'location' => 'query',
9242                  'type' => 'string',
9243                ],
9244                'returnPartialSuccess' => [
9245                  'location' => 'query',
9246                  'type' => 'boolean',
9247                ],
9248              ],
9249            ],
9250          ]
9251        ]
9252    );
9253    $this->regionDisks = new Compute\Resource\RegionDisks(
9254        $this,
9255        $this->serviceName,
9256        'regionDisks',
9257        [
9258          'methods' => [
9259            'addResourcePolicies' => [
9260              'path' => 'projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies',
9261              'httpMethod' => 'POST',
9262              'parameters' => [
9263                'project' => [
9264                  'location' => 'path',
9265                  'type' => 'string',
9266                  'required' => true,
9267                ],
9268                'region' => [
9269                  'location' => 'path',
9270                  'type' => 'string',
9271                  'required' => true,
9272                ],
9273                'disk' => [
9274                  'location' => 'path',
9275                  'type' => 'string',
9276                  'required' => true,
9277                ],
9278                'requestId' => [
9279                  'location' => 'query',
9280                  'type' => 'string',
9281                ],
9282              ],
9283            ],'createSnapshot' => [
9284              'path' => 'projects/{project}/regions/{region}/disks/{disk}/createSnapshot',
9285              'httpMethod' => 'POST',
9286              'parameters' => [
9287                'project' => [
9288                  'location' => 'path',
9289                  'type' => 'string',
9290                  'required' => true,
9291                ],
9292                'region' => [
9293                  'location' => 'path',
9294                  'type' => 'string',
9295                  'required' => true,
9296                ],
9297                'disk' => [
9298                  'location' => 'path',
9299                  'type' => 'string',
9300                  'required' => true,
9301                ],
9302                'requestId' => [
9303                  'location' => 'query',
9304                  'type' => 'string',
9305                ],
9306              ],
9307            ],'delete' => [
9308              'path' => 'projects/{project}/regions/{region}/disks/{disk}',
9309              'httpMethod' => 'DELETE',
9310              'parameters' => [
9311                'project' => [
9312                  'location' => 'path',
9313                  'type' => 'string',
9314                  'required' => true,
9315                ],
9316                'region' => [
9317                  'location' => 'path',
9318                  'type' => 'string',
9319                  'required' => true,
9320                ],
9321                'disk' => [
9322                  'location' => 'path',
9323                  'type' => 'string',
9324                  'required' => true,
9325                ],
9326                'requestId' => [
9327                  'location' => 'query',
9328                  'type' => 'string',
9329                ],
9330              ],
9331            ],'get' => [
9332              'path' => 'projects/{project}/regions/{region}/disks/{disk}',
9333              'httpMethod' => 'GET',
9334              'parameters' => [
9335                'project' => [
9336                  'location' => 'path',
9337                  'type' => 'string',
9338                  'required' => true,
9339                ],
9340                'region' => [
9341                  'location' => 'path',
9342                  'type' => 'string',
9343                  'required' => true,
9344                ],
9345                'disk' => [
9346                  'location' => 'path',
9347                  'type' => 'string',
9348                  'required' => true,
9349                ],
9350              ],
9351            ],'getIamPolicy' => [
9352              'path' => 'projects/{project}/regions/{region}/disks/{resource}/getIamPolicy',
9353              'httpMethod' => 'GET',
9354              'parameters' => [
9355                'project' => [
9356                  'location' => 'path',
9357                  'type' => 'string',
9358                  'required' => true,
9359                ],
9360                'region' => [
9361                  'location' => 'path',
9362                  'type' => 'string',
9363                  'required' => true,
9364                ],
9365                'resource' => [
9366                  'location' => 'path',
9367                  'type' => 'string',
9368                  'required' => true,
9369                ],
9370                'optionsRequestedPolicyVersion' => [
9371                  'location' => 'query',
9372                  'type' => 'integer',
9373                ],
9374              ],
9375            ],'insert' => [
9376              'path' => 'projects/{project}/regions/{region}/disks',
9377              'httpMethod' => 'POST',
9378              'parameters' => [
9379                'project' => [
9380                  'location' => 'path',
9381                  'type' => 'string',
9382                  'required' => true,
9383                ],
9384                'region' => [
9385                  'location' => 'path',
9386                  'type' => 'string',
9387                  'required' => true,
9388                ],
9389                'requestId' => [
9390                  'location' => 'query',
9391                  'type' => 'string',
9392                ],
9393                'sourceImage' => [
9394                  'location' => 'query',
9395                  'type' => 'string',
9396                ],
9397              ],
9398            ],'list' => [
9399              'path' => 'projects/{project}/regions/{region}/disks',
9400              'httpMethod' => 'GET',
9401              'parameters' => [
9402                'project' => [
9403                  'location' => 'path',
9404                  'type' => 'string',
9405                  'required' => true,
9406                ],
9407                'region' => [
9408                  'location' => 'path',
9409                  'type' => 'string',
9410                  'required' => true,
9411                ],
9412                'filter' => [
9413                  'location' => 'query',
9414                  'type' => 'string',
9415                ],
9416                'maxResults' => [
9417                  'location' => 'query',
9418                  'type' => 'integer',
9419                ],
9420                'orderBy' => [
9421                  'location' => 'query',
9422                  'type' => 'string',
9423                ],
9424                'pageToken' => [
9425                  'location' => 'query',
9426                  'type' => 'string',
9427                ],
9428                'returnPartialSuccess' => [
9429                  'location' => 'query',
9430                  'type' => 'boolean',
9431                ],
9432              ],
9433            ],'removeResourcePolicies' => [
9434              'path' => 'projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies',
9435              'httpMethod' => 'POST',
9436              'parameters' => [
9437                'project' => [
9438                  'location' => 'path',
9439                  'type' => 'string',
9440                  'required' => true,
9441                ],
9442                'region' => [
9443                  'location' => 'path',
9444                  'type' => 'string',
9445                  'required' => true,
9446                ],
9447                'disk' => [
9448                  'location' => 'path',
9449                  'type' => 'string',
9450                  'required' => true,
9451                ],
9452                'requestId' => [
9453                  'location' => 'query',
9454                  'type' => 'string',
9455                ],
9456              ],
9457            ],'resize' => [
9458              'path' => 'projects/{project}/regions/{region}/disks/{disk}/resize',
9459              'httpMethod' => 'POST',
9460              'parameters' => [
9461                'project' => [
9462                  'location' => 'path',
9463                  'type' => 'string',
9464                  'required' => true,
9465                ],
9466                'region' => [
9467                  'location' => 'path',
9468                  'type' => 'string',
9469                  'required' => true,
9470                ],
9471                'disk' => [
9472                  'location' => 'path',
9473                  'type' => 'string',
9474                  'required' => true,
9475                ],
9476                'requestId' => [
9477                  'location' => 'query',
9478                  'type' => 'string',
9479                ],
9480              ],
9481            ],'setIamPolicy' => [
9482              'path' => 'projects/{project}/regions/{region}/disks/{resource}/setIamPolicy',
9483              'httpMethod' => 'POST',
9484              'parameters' => [
9485                'project' => [
9486                  'location' => 'path',
9487                  'type' => 'string',
9488                  'required' => true,
9489                ],
9490                'region' => [
9491                  'location' => 'path',
9492                  'type' => 'string',
9493                  'required' => true,
9494                ],
9495                'resource' => [
9496                  'location' => 'path',
9497                  'type' => 'string',
9498                  'required' => true,
9499                ],
9500              ],
9501            ],'setLabels' => [
9502              'path' => 'projects/{project}/regions/{region}/disks/{resource}/setLabels',
9503              'httpMethod' => 'POST',
9504              'parameters' => [
9505                'project' => [
9506                  'location' => 'path',
9507                  'type' => 'string',
9508                  'required' => true,
9509                ],
9510                'region' => [
9511                  'location' => 'path',
9512                  'type' => 'string',
9513                  'required' => true,
9514                ],
9515                'resource' => [
9516                  'location' => 'path',
9517                  'type' => 'string',
9518                  'required' => true,
9519                ],
9520                'requestId' => [
9521                  'location' => 'query',
9522                  'type' => 'string',
9523                ],
9524              ],
9525            ],'testIamPermissions' => [
9526              'path' => 'projects/{project}/regions/{region}/disks/{resource}/testIamPermissions',
9527              'httpMethod' => 'POST',
9528              'parameters' => [
9529                'project' => [
9530                  'location' => 'path',
9531                  'type' => 'string',
9532                  'required' => true,
9533                ],
9534                'region' => [
9535                  'location' => 'path',
9536                  'type' => 'string',
9537                  'required' => true,
9538                ],
9539                'resource' => [
9540                  'location' => 'path',
9541                  'type' => 'string',
9542                  'required' => true,
9543                ],
9544              ],
9545            ],
9546          ]
9547        ]
9548    );
9549    $this->regionHealthCheckServices = new Compute\Resource\RegionHealthCheckServices(
9550        $this,
9551        $this->serviceName,
9552        'regionHealthCheckServices',
9553        [
9554          'methods' => [
9555            'delete' => [
9556              'path' => 'projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}',
9557              'httpMethod' => 'DELETE',
9558              'parameters' => [
9559                'project' => [
9560                  'location' => 'path',
9561                  'type' => 'string',
9562                  'required' => true,
9563                ],
9564                'region' => [
9565                  'location' => 'path',
9566                  'type' => 'string',
9567                  'required' => true,
9568                ],
9569                'healthCheckService' => [
9570                  'location' => 'path',
9571                  'type' => 'string',
9572                  'required' => true,
9573                ],
9574                'requestId' => [
9575                  'location' => 'query',
9576                  'type' => 'string',
9577                ],
9578              ],
9579            ],'get' => [
9580              'path' => 'projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}',
9581              'httpMethod' => 'GET',
9582              'parameters' => [
9583                'project' => [
9584                  'location' => 'path',
9585                  'type' => 'string',
9586                  'required' => true,
9587                ],
9588                'region' => [
9589                  'location' => 'path',
9590                  'type' => 'string',
9591                  'required' => true,
9592                ],
9593                'healthCheckService' => [
9594                  'location' => 'path',
9595                  'type' => 'string',
9596                  'required' => true,
9597                ],
9598              ],
9599            ],'insert' => [
9600              'path' => 'projects/{project}/regions/{region}/healthCheckServices',
9601              'httpMethod' => 'POST',
9602              'parameters' => [
9603                'project' => [
9604                  'location' => 'path',
9605                  'type' => 'string',
9606                  'required' => true,
9607                ],
9608                'region' => [
9609                  'location' => 'path',
9610                  'type' => 'string',
9611                  'required' => true,
9612                ],
9613                'requestId' => [
9614                  'location' => 'query',
9615                  'type' => 'string',
9616                ],
9617              ],
9618            ],'list' => [
9619              'path' => 'projects/{project}/regions/{region}/healthCheckServices',
9620              'httpMethod' => 'GET',
9621              'parameters' => [
9622                'project' => [
9623                  'location' => 'path',
9624                  'type' => 'string',
9625                  'required' => true,
9626                ],
9627                'region' => [
9628                  'location' => 'path',
9629                  'type' => 'string',
9630                  'required' => true,
9631                ],
9632                'filter' => [
9633                  'location' => 'query',
9634                  'type' => 'string',
9635                ],
9636                'maxResults' => [
9637                  'location' => 'query',
9638                  'type' => 'integer',
9639                ],
9640                'orderBy' => [
9641                  'location' => 'query',
9642                  'type' => 'string',
9643                ],
9644                'pageToken' => [
9645                  'location' => 'query',
9646                  'type' => 'string',
9647                ],
9648                'returnPartialSuccess' => [
9649                  'location' => 'query',
9650                  'type' => 'boolean',
9651                ],
9652              ],
9653            ],'patch' => [
9654              'path' => 'projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}',
9655              'httpMethod' => 'PATCH',
9656              'parameters' => [
9657                'project' => [
9658                  'location' => 'path',
9659                  'type' => 'string',
9660                  'required' => true,
9661                ],
9662                'region' => [
9663                  'location' => 'path',
9664                  'type' => 'string',
9665                  'required' => true,
9666                ],
9667                'healthCheckService' => [
9668                  'location' => 'path',
9669                  'type' => 'string',
9670                  'required' => true,
9671                ],
9672                'requestId' => [
9673                  'location' => 'query',
9674                  'type' => 'string',
9675                ],
9676              ],
9677            ],
9678          ]
9679        ]
9680    );
9681    $this->regionHealthChecks = new Compute\Resource\RegionHealthChecks(
9682        $this,
9683        $this->serviceName,
9684        'regionHealthChecks',
9685        [
9686          'methods' => [
9687            'delete' => [
9688              'path' => 'projects/{project}/regions/{region}/healthChecks/{healthCheck}',
9689              'httpMethod' => 'DELETE',
9690              'parameters' => [
9691                'project' => [
9692                  'location' => 'path',
9693                  'type' => 'string',
9694                  'required' => true,
9695                ],
9696                'region' => [
9697                  'location' => 'path',
9698                  'type' => 'string',
9699                  'required' => true,
9700                ],
9701                'healthCheck' => [
9702                  'location' => 'path',
9703                  'type' => 'string',
9704                  'required' => true,
9705                ],
9706                'requestId' => [
9707                  'location' => 'query',
9708                  'type' => 'string',
9709                ],
9710              ],
9711            ],'get' => [
9712              'path' => 'projects/{project}/regions/{region}/healthChecks/{healthCheck}',
9713              'httpMethod' => 'GET',
9714              'parameters' => [
9715                'project' => [
9716                  'location' => 'path',
9717                  'type' => 'string',
9718                  'required' => true,
9719                ],
9720                'region' => [
9721                  'location' => 'path',
9722                  'type' => 'string',
9723                  'required' => true,
9724                ],
9725                'healthCheck' => [
9726                  'location' => 'path',
9727                  'type' => 'string',
9728                  'required' => true,
9729                ],
9730              ],
9731            ],'insert' => [
9732              'path' => 'projects/{project}/regions/{region}/healthChecks',
9733              'httpMethod' => 'POST',
9734              'parameters' => [
9735                'project' => [
9736                  'location' => 'path',
9737                  'type' => 'string',
9738                  'required' => true,
9739                ],
9740                'region' => [
9741                  'location' => 'path',
9742                  'type' => 'string',
9743                  'required' => true,
9744                ],
9745                'requestId' => [
9746                  'location' => 'query',
9747                  'type' => 'string',
9748                ],
9749              ],
9750            ],'list' => [
9751              'path' => 'projects/{project}/regions/{region}/healthChecks',
9752              'httpMethod' => 'GET',
9753              'parameters' => [
9754                'project' => [
9755                  'location' => 'path',
9756                  'type' => 'string',
9757                  'required' => true,
9758                ],
9759                'region' => [
9760                  'location' => 'path',
9761                  'type' => 'string',
9762                  'required' => true,
9763                ],
9764                'filter' => [
9765                  'location' => 'query',
9766                  'type' => 'string',
9767                ],
9768                'maxResults' => [
9769                  'location' => 'query',
9770                  'type' => 'integer',
9771                ],
9772                'orderBy' => [
9773                  'location' => 'query',
9774                  'type' => 'string',
9775                ],
9776                'pageToken' => [
9777                  'location' => 'query',
9778                  'type' => 'string',
9779                ],
9780                'returnPartialSuccess' => [
9781                  'location' => 'query',
9782                  'type' => 'boolean',
9783                ],
9784              ],
9785            ],'patch' => [
9786              'path' => 'projects/{project}/regions/{region}/healthChecks/{healthCheck}',
9787              'httpMethod' => 'PATCH',
9788              'parameters' => [
9789                'project' => [
9790                  'location' => 'path',
9791                  'type' => 'string',
9792                  'required' => true,
9793                ],
9794                'region' => [
9795                  'location' => 'path',
9796                  'type' => 'string',
9797                  'required' => true,
9798                ],
9799                'healthCheck' => [
9800                  'location' => 'path',
9801                  'type' => 'string',
9802                  'required' => true,
9803                ],
9804                'requestId' => [
9805                  'location' => 'query',
9806                  'type' => 'string',
9807                ],
9808              ],
9809            ],'update' => [
9810              'path' => 'projects/{project}/regions/{region}/healthChecks/{healthCheck}',
9811              'httpMethod' => 'PUT',
9812              'parameters' => [
9813                'project' => [
9814                  'location' => 'path',
9815                  'type' => 'string',
9816                  'required' => true,
9817                ],
9818                'region' => [
9819                  'location' => 'path',
9820                  'type' => 'string',
9821                  'required' => true,
9822                ],
9823                'healthCheck' => [
9824                  'location' => 'path',
9825                  'type' => 'string',
9826                  'required' => true,
9827                ],
9828                'requestId' => [
9829                  'location' => 'query',
9830                  'type' => 'string',
9831                ],
9832              ],
9833            ],
9834          ]
9835        ]
9836    );
9837    $this->regionInstanceGroupManagers = new Compute\Resource\RegionInstanceGroupManagers(
9838        $this,
9839        $this->serviceName,
9840        'regionInstanceGroupManagers',
9841        [
9842          'methods' => [
9843            'abandonInstances' => [
9844              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances',
9845              'httpMethod' => 'POST',
9846              'parameters' => [
9847                'project' => [
9848                  'location' => 'path',
9849                  'type' => 'string',
9850                  'required' => true,
9851                ],
9852                'region' => [
9853                  'location' => 'path',
9854                  'type' => 'string',
9855                  'required' => true,
9856                ],
9857                'instanceGroupManager' => [
9858                  'location' => 'path',
9859                  'type' => 'string',
9860                  'required' => true,
9861                ],
9862                'requestId' => [
9863                  'location' => 'query',
9864                  'type' => 'string',
9865                ],
9866              ],
9867            ],'applyUpdatesToInstances' => [
9868              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances',
9869              'httpMethod' => 'POST',
9870              'parameters' => [
9871                'project' => [
9872                  'location' => 'path',
9873                  'type' => 'string',
9874                  'required' => true,
9875                ],
9876                'region' => [
9877                  'location' => 'path',
9878                  'type' => 'string',
9879                  'required' => true,
9880                ],
9881                'instanceGroupManager' => [
9882                  'location' => 'path',
9883                  'type' => 'string',
9884                  'required' => true,
9885                ],
9886              ],
9887            ],'createInstances' => [
9888              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances',
9889              'httpMethod' => 'POST',
9890              'parameters' => [
9891                'project' => [
9892                  'location' => 'path',
9893                  'type' => 'string',
9894                  'required' => true,
9895                ],
9896                'region' => [
9897                  'location' => 'path',
9898                  'type' => 'string',
9899                  'required' => true,
9900                ],
9901                'instanceGroupManager' => [
9902                  'location' => 'path',
9903                  'type' => 'string',
9904                  'required' => true,
9905                ],
9906                'requestId' => [
9907                  'location' => 'query',
9908                  'type' => 'string',
9909                ],
9910              ],
9911            ],'delete' => [
9912              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}',
9913              'httpMethod' => 'DELETE',
9914              'parameters' => [
9915                'project' => [
9916                  'location' => 'path',
9917                  'type' => 'string',
9918                  'required' => true,
9919                ],
9920                'region' => [
9921                  'location' => 'path',
9922                  'type' => 'string',
9923                  'required' => true,
9924                ],
9925                'instanceGroupManager' => [
9926                  'location' => 'path',
9927                  'type' => 'string',
9928                  'required' => true,
9929                ],
9930                'requestId' => [
9931                  'location' => 'query',
9932                  'type' => 'string',
9933                ],
9934              ],
9935            ],'deleteInstances' => [
9936              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances',
9937              'httpMethod' => 'POST',
9938              'parameters' => [
9939                'project' => [
9940                  'location' => 'path',
9941                  'type' => 'string',
9942                  'required' => true,
9943                ],
9944                'region' => [
9945                  'location' => 'path',
9946                  'type' => 'string',
9947                  'required' => true,
9948                ],
9949                'instanceGroupManager' => [
9950                  'location' => 'path',
9951                  'type' => 'string',
9952                  'required' => true,
9953                ],
9954                'requestId' => [
9955                  'location' => 'query',
9956                  'type' => 'string',
9957                ],
9958              ],
9959            ],'deletePerInstanceConfigs' => [
9960              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs',
9961              'httpMethod' => 'POST',
9962              'parameters' => [
9963                'project' => [
9964                  'location' => 'path',
9965                  'type' => 'string',
9966                  'required' => true,
9967                ],
9968                'region' => [
9969                  'location' => 'path',
9970                  'type' => 'string',
9971                  'required' => true,
9972                ],
9973                'instanceGroupManager' => [
9974                  'location' => 'path',
9975                  'type' => 'string',
9976                  'required' => true,
9977                ],
9978              ],
9979            ],'get' => [
9980              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}',
9981              'httpMethod' => 'GET',
9982              'parameters' => [
9983                'project' => [
9984                  'location' => 'path',
9985                  'type' => 'string',
9986                  'required' => true,
9987                ],
9988                'region' => [
9989                  'location' => 'path',
9990                  'type' => 'string',
9991                  'required' => true,
9992                ],
9993                'instanceGroupManager' => [
9994                  'location' => 'path',
9995                  'type' => 'string',
9996                  'required' => true,
9997                ],
9998              ],
9999            ],'insert' => [
10000              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers',
10001              'httpMethod' => 'POST',
10002              'parameters' => [
10003                'project' => [
10004                  'location' => 'path',
10005                  'type' => 'string',
10006                  'required' => true,
10007                ],
10008                'region' => [
10009                  'location' => 'path',
10010                  'type' => 'string',
10011                  'required' => true,
10012                ],
10013                'requestId' => [
10014                  'location' => 'query',
10015                  'type' => 'string',
10016                ],
10017              ],
10018            ],'list' => [
10019              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers',
10020              'httpMethod' => 'GET',
10021              'parameters' => [
10022                'project' => [
10023                  'location' => 'path',
10024                  'type' => 'string',
10025                  'required' => true,
10026                ],
10027                'region' => [
10028                  'location' => 'path',
10029                  'type' => 'string',
10030                  'required' => true,
10031                ],
10032                'filter' => [
10033                  'location' => 'query',
10034                  'type' => 'string',
10035                ],
10036                'maxResults' => [
10037                  'location' => 'query',
10038                  'type' => 'integer',
10039                ],
10040                'orderBy' => [
10041                  'location' => 'query',
10042                  'type' => 'string',
10043                ],
10044                'pageToken' => [
10045                  'location' => 'query',
10046                  'type' => 'string',
10047                ],
10048                'returnPartialSuccess' => [
10049                  'location' => 'query',
10050                  'type' => 'boolean',
10051                ],
10052              ],
10053            ],'listErrors' => [
10054              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors',
10055              'httpMethod' => 'GET',
10056              'parameters' => [
10057                'project' => [
10058                  'location' => 'path',
10059                  'type' => 'string',
10060                  'required' => true,
10061                ],
10062                'region' => [
10063                  'location' => 'path',
10064                  'type' => 'string',
10065                  'required' => true,
10066                ],
10067                'instanceGroupManager' => [
10068                  'location' => 'path',
10069                  'type' => 'string',
10070                  'required' => true,
10071                ],
10072                'filter' => [
10073                  'location' => 'query',
10074                  'type' => 'string',
10075                ],
10076                'maxResults' => [
10077                  'location' => 'query',
10078                  'type' => 'integer',
10079                ],
10080                'orderBy' => [
10081                  'location' => 'query',
10082                  'type' => 'string',
10083                ],
10084                'pageToken' => [
10085                  'location' => 'query',
10086                  'type' => 'string',
10087                ],
10088                'returnPartialSuccess' => [
10089                  'location' => 'query',
10090                  'type' => 'boolean',
10091                ],
10092              ],
10093            ],'listManagedInstances' => [
10094              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances',
10095              'httpMethod' => 'POST',
10096              'parameters' => [
10097                'project' => [
10098                  'location' => 'path',
10099                  'type' => 'string',
10100                  'required' => true,
10101                ],
10102                'region' => [
10103                  'location' => 'path',
10104                  'type' => 'string',
10105                  'required' => true,
10106                ],
10107                'instanceGroupManager' => [
10108                  'location' => 'path',
10109                  'type' => 'string',
10110                  'required' => true,
10111                ],
10112                'filter' => [
10113                  'location' => 'query',
10114                  'type' => 'string',
10115                ],
10116                'maxResults' => [
10117                  'location' => 'query',
10118                  'type' => 'integer',
10119                ],
10120                'orderBy' => [
10121                  'location' => 'query',
10122                  'type' => 'string',
10123                ],
10124                'pageToken' => [
10125                  'location' => 'query',
10126                  'type' => 'string',
10127                ],
10128                'returnPartialSuccess' => [
10129                  'location' => 'query',
10130                  'type' => 'boolean',
10131                ],
10132              ],
10133            ],'listPerInstanceConfigs' => [
10134              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs',
10135              'httpMethod' => 'POST',
10136              'parameters' => [
10137                'project' => [
10138                  'location' => 'path',
10139                  'type' => 'string',
10140                  'required' => true,
10141                ],
10142                'region' => [
10143                  'location' => 'path',
10144                  'type' => 'string',
10145                  'required' => true,
10146                ],
10147                'instanceGroupManager' => [
10148                  'location' => 'path',
10149                  'type' => 'string',
10150                  'required' => true,
10151                ],
10152                'filter' => [
10153                  'location' => 'query',
10154                  'type' => 'string',
10155                ],
10156                'maxResults' => [
10157                  'location' => 'query',
10158                  'type' => 'integer',
10159                ],
10160                'orderBy' => [
10161                  'location' => 'query',
10162                  'type' => 'string',
10163                ],
10164                'pageToken' => [
10165                  'location' => 'query',
10166                  'type' => 'string',
10167                ],
10168                'returnPartialSuccess' => [
10169                  'location' => 'query',
10170                  'type' => 'boolean',
10171                ],
10172              ],
10173            ],'patch' => [
10174              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}',
10175              'httpMethod' => 'PATCH',
10176              'parameters' => [
10177                'project' => [
10178                  'location' => 'path',
10179                  'type' => 'string',
10180                  'required' => true,
10181                ],
10182                'region' => [
10183                  'location' => 'path',
10184                  'type' => 'string',
10185                  'required' => true,
10186                ],
10187                'instanceGroupManager' => [
10188                  'location' => 'path',
10189                  'type' => 'string',
10190                  'required' => true,
10191                ],
10192                'requestId' => [
10193                  'location' => 'query',
10194                  'type' => 'string',
10195                ],
10196              ],
10197            ],'patchPerInstanceConfigs' => [
10198              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs',
10199              'httpMethod' => 'POST',
10200              'parameters' => [
10201                'project' => [
10202                  'location' => 'path',
10203                  'type' => 'string',
10204                  'required' => true,
10205                ],
10206                'region' => [
10207                  'location' => 'path',
10208                  'type' => 'string',
10209                  'required' => true,
10210                ],
10211                'instanceGroupManager' => [
10212                  'location' => 'path',
10213                  'type' => 'string',
10214                  'required' => true,
10215                ],
10216                'requestId' => [
10217                  'location' => 'query',
10218                  'type' => 'string',
10219                ],
10220              ],
10221            ],'recreateInstances' => [
10222              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances',
10223              'httpMethod' => 'POST',
10224              'parameters' => [
10225                'project' => [
10226                  'location' => 'path',
10227                  'type' => 'string',
10228                  'required' => true,
10229                ],
10230                'region' => [
10231                  'location' => 'path',
10232                  'type' => 'string',
10233                  'required' => true,
10234                ],
10235                'instanceGroupManager' => [
10236                  'location' => 'path',
10237                  'type' => 'string',
10238                  'required' => true,
10239                ],
10240                'requestId' => [
10241                  'location' => 'query',
10242                  'type' => 'string',
10243                ],
10244              ],
10245            ],'resize' => [
10246              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize',
10247              'httpMethod' => 'POST',
10248              'parameters' => [
10249                'project' => [
10250                  'location' => 'path',
10251                  'type' => 'string',
10252                  'required' => true,
10253                ],
10254                'region' => [
10255                  'location' => 'path',
10256                  'type' => 'string',
10257                  'required' => true,
10258                ],
10259                'instanceGroupManager' => [
10260                  'location' => 'path',
10261                  'type' => 'string',
10262                  'required' => true,
10263                ],
10264                'size' => [
10265                  'location' => 'query',
10266                  'type' => 'integer',
10267                  'required' => true,
10268                ],
10269                'requestId' => [
10270                  'location' => 'query',
10271                  'type' => 'string',
10272                ],
10273              ],
10274            ],'setInstanceTemplate' => [
10275              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate',
10276              'httpMethod' => 'POST',
10277              'parameters' => [
10278                'project' => [
10279                  'location' => 'path',
10280                  'type' => 'string',
10281                  'required' => true,
10282                ],
10283                'region' => [
10284                  'location' => 'path',
10285                  'type' => 'string',
10286                  'required' => true,
10287                ],
10288                'instanceGroupManager' => [
10289                  'location' => 'path',
10290                  'type' => 'string',
10291                  'required' => true,
10292                ],
10293                'requestId' => [
10294                  'location' => 'query',
10295                  'type' => 'string',
10296                ],
10297              ],
10298            ],'setTargetPools' => [
10299              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools',
10300              'httpMethod' => 'POST',
10301              'parameters' => [
10302                'project' => [
10303                  'location' => 'path',
10304                  'type' => 'string',
10305                  'required' => true,
10306                ],
10307                'region' => [
10308                  'location' => 'path',
10309                  'type' => 'string',
10310                  'required' => true,
10311                ],
10312                'instanceGroupManager' => [
10313                  'location' => 'path',
10314                  'type' => 'string',
10315                  'required' => true,
10316                ],
10317                'requestId' => [
10318                  'location' => 'query',
10319                  'type' => 'string',
10320                ],
10321              ],
10322            ],'updatePerInstanceConfigs' => [
10323              'path' => 'projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs',
10324              'httpMethod' => 'POST',
10325              'parameters' => [
10326                'project' => [
10327                  'location' => 'path',
10328                  'type' => 'string',
10329                  'required' => true,
10330                ],
10331                'region' => [
10332                  'location' => 'path',
10333                  'type' => 'string',
10334                  'required' => true,
10335                ],
10336                'instanceGroupManager' => [
10337                  'location' => 'path',
10338                  'type' => 'string',
10339                  'required' => true,
10340                ],
10341                'requestId' => [
10342                  'location' => 'query',
10343                  'type' => 'string',
10344                ],
10345              ],
10346            ],
10347          ]
10348        ]
10349    );
10350    $this->regionInstanceGroups = new Compute\Resource\RegionInstanceGroups(
10351        $this,
10352        $this->serviceName,
10353        'regionInstanceGroups',
10354        [
10355          'methods' => [
10356            'get' => [
10357              'path' => 'projects/{project}/regions/{region}/instanceGroups/{instanceGroup}',
10358              'httpMethod' => 'GET',
10359              'parameters' => [
10360                'project' => [
10361                  'location' => 'path',
10362                  'type' => 'string',
10363                  'required' => true,
10364                ],
10365                'region' => [
10366                  'location' => 'path',
10367                  'type' => 'string',
10368                  'required' => true,
10369                ],
10370                'instanceGroup' => [
10371                  'location' => 'path',
10372                  'type' => 'string',
10373                  'required' => true,
10374                ],
10375              ],
10376            ],'list' => [
10377              'path' => 'projects/{project}/regions/{region}/instanceGroups',
10378              'httpMethod' => 'GET',
10379              'parameters' => [
10380                'project' => [
10381                  'location' => 'path',
10382                  'type' => 'string',
10383                  'required' => true,
10384                ],
10385                'region' => [
10386                  'location' => 'path',
10387                  'type' => 'string',
10388                  'required' => true,
10389                ],
10390                'filter' => [
10391                  'location' => 'query',
10392                  'type' => 'string',
10393                ],
10394                'maxResults' => [
10395                  'location' => 'query',
10396                  'type' => 'integer',
10397                ],
10398                'orderBy' => [
10399                  'location' => 'query',
10400                  'type' => 'string',
10401                ],
10402                'pageToken' => [
10403                  'location' => 'query',
10404                  'type' => 'string',
10405                ],
10406                'returnPartialSuccess' => [
10407                  'location' => 'query',
10408                  'type' => 'boolean',
10409                ],
10410              ],
10411            ],'listInstances' => [
10412              'path' => 'projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances',
10413              'httpMethod' => 'POST',
10414              'parameters' => [
10415                'project' => [
10416                  'location' => 'path',
10417                  'type' => 'string',
10418                  'required' => true,
10419                ],
10420                'region' => [
10421                  'location' => 'path',
10422                  'type' => 'string',
10423                  'required' => true,
10424                ],
10425                'instanceGroup' => [
10426                  'location' => 'path',
10427                  'type' => 'string',
10428                  'required' => true,
10429                ],
10430                'filter' => [
10431                  'location' => 'query',
10432                  'type' => 'string',
10433                ],
10434                'maxResults' => [
10435                  'location' => 'query',
10436                  'type' => 'integer',
10437                ],
10438                'orderBy' => [
10439                  'location' => 'query',
10440                  'type' => 'string',
10441                ],
10442                'pageToken' => [
10443                  'location' => 'query',
10444                  'type' => 'string',
10445                ],
10446                'returnPartialSuccess' => [
10447                  'location' => 'query',
10448                  'type' => 'boolean',
10449                ],
10450              ],
10451            ],'setNamedPorts' => [
10452              'path' => 'projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts',
10453              'httpMethod' => 'POST',
10454              'parameters' => [
10455                'project' => [
10456                  'location' => 'path',
10457                  'type' => 'string',
10458                  'required' => true,
10459                ],
10460                'region' => [
10461                  'location' => 'path',
10462                  'type' => 'string',
10463                  'required' => true,
10464                ],
10465                'instanceGroup' => [
10466                  'location' => 'path',
10467                  'type' => 'string',
10468                  'required' => true,
10469                ],
10470                'requestId' => [
10471                  'location' => 'query',
10472                  'type' => 'string',
10473                ],
10474              ],
10475            ],
10476          ]
10477        ]
10478    );
10479    $this->regionInstances = new Compute\Resource\RegionInstances(
10480        $this,
10481        $this->serviceName,
10482        'regionInstances',
10483        [
10484          'methods' => [
10485            'bulkInsert' => [
10486              'path' => 'projects/{project}/regions/{region}/instances/bulkInsert',
10487              'httpMethod' => 'POST',
10488              'parameters' => [
10489                'project' => [
10490                  'location' => 'path',
10491                  'type' => 'string',
10492                  'required' => true,
10493                ],
10494                'region' => [
10495                  'location' => 'path',
10496                  'type' => 'string',
10497                  'required' => true,
10498                ],
10499                'requestId' => [
10500                  'location' => 'query',
10501                  'type' => 'string',
10502                ],
10503              ],
10504            ],
10505          ]
10506        ]
10507    );
10508    $this->regionNetworkEndpointGroups = new Compute\Resource\RegionNetworkEndpointGroups(
10509        $this,
10510        $this->serviceName,
10511        'regionNetworkEndpointGroups',
10512        [
10513          'methods' => [
10514            'delete' => [
10515              'path' => 'projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}',
10516              'httpMethod' => 'DELETE',
10517              'parameters' => [
10518                'project' => [
10519                  'location' => 'path',
10520                  'type' => 'string',
10521                  'required' => true,
10522                ],
10523                'region' => [
10524                  'location' => 'path',
10525                  'type' => 'string',
10526                  'required' => true,
10527                ],
10528                'networkEndpointGroup' => [
10529                  'location' => 'path',
10530                  'type' => 'string',
10531                  'required' => true,
10532                ],
10533                'requestId' => [
10534                  'location' => 'query',
10535                  'type' => 'string',
10536                ],
10537              ],
10538            ],'get' => [
10539              'path' => 'projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}',
10540              'httpMethod' => 'GET',
10541              'parameters' => [
10542                'project' => [
10543                  'location' => 'path',
10544                  'type' => 'string',
10545                  'required' => true,
10546                ],
10547                'region' => [
10548                  'location' => 'path',
10549                  'type' => 'string',
10550                  'required' => true,
10551                ],
10552                'networkEndpointGroup' => [
10553                  'location' => 'path',
10554                  'type' => 'string',
10555                  'required' => true,
10556                ],
10557              ],
10558            ],'insert' => [
10559              'path' => 'projects/{project}/regions/{region}/networkEndpointGroups',
10560              'httpMethod' => 'POST',
10561              'parameters' => [
10562                'project' => [
10563                  'location' => 'path',
10564                  'type' => 'string',
10565                  'required' => true,
10566                ],
10567                'region' => [
10568                  'location' => 'path',
10569                  'type' => 'string',
10570                  'required' => true,
10571                ],
10572                'requestId' => [
10573                  'location' => 'query',
10574                  'type' => 'string',
10575                ],
10576              ],
10577            ],'list' => [
10578              'path' => 'projects/{project}/regions/{region}/networkEndpointGroups',
10579              'httpMethod' => 'GET',
10580              'parameters' => [
10581                'project' => [
10582                  'location' => 'path',
10583                  'type' => 'string',
10584                  'required' => true,
10585                ],
10586                'region' => [
10587                  'location' => 'path',
10588                  'type' => 'string',
10589                  'required' => true,
10590                ],
10591                'filter' => [
10592                  'location' => 'query',
10593                  'type' => 'string',
10594                ],
10595                'maxResults' => [
10596                  'location' => 'query',
10597                  'type' => 'integer',
10598                ],
10599                'orderBy' => [
10600                  'location' => 'query',
10601                  'type' => 'string',
10602                ],
10603                'pageToken' => [
10604                  'location' => 'query',
10605                  'type' => 'string',
10606                ],
10607                'returnPartialSuccess' => [
10608                  'location' => 'query',
10609                  'type' => 'boolean',
10610                ],
10611              ],
10612            ],
10613          ]
10614        ]
10615    );
10616    $this->regionNetworkFirewallPolicies = new Compute\Resource\RegionNetworkFirewallPolicies(
10617        $this,
10618        $this->serviceName,
10619        'regionNetworkFirewallPolicies',
10620        [
10621          'methods' => [
10622            'addAssociation' => [
10623              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addAssociation',
10624              'httpMethod' => 'POST',
10625              'parameters' => [
10626                'project' => [
10627                  'location' => 'path',
10628                  'type' => 'string',
10629                  'required' => true,
10630                ],
10631                'region' => [
10632                  'location' => 'path',
10633                  'type' => 'string',
10634                  'required' => true,
10635                ],
10636                'firewallPolicy' => [
10637                  'location' => 'path',
10638                  'type' => 'string',
10639                  'required' => true,
10640                ],
10641                'replaceExistingAssociation' => [
10642                  'location' => 'query',
10643                  'type' => 'boolean',
10644                ],
10645                'requestId' => [
10646                  'location' => 'query',
10647                  'type' => 'string',
10648                ],
10649              ],
10650            ],'addRule' => [
10651              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/addRule',
10652              'httpMethod' => 'POST',
10653              'parameters' => [
10654                'project' => [
10655                  'location' => 'path',
10656                  'type' => 'string',
10657                  'required' => true,
10658                ],
10659                'region' => [
10660                  'location' => 'path',
10661                  'type' => 'string',
10662                  'required' => true,
10663                ],
10664                'firewallPolicy' => [
10665                  'location' => 'path',
10666                  'type' => 'string',
10667                  'required' => true,
10668                ],
10669                'maxPriority' => [
10670                  'location' => 'query',
10671                  'type' => 'integer',
10672                ],
10673                'minPriority' => [
10674                  'location' => 'query',
10675                  'type' => 'integer',
10676                ],
10677                'requestId' => [
10678                  'location' => 'query',
10679                  'type' => 'string',
10680                ],
10681              ],
10682            ],'cloneRules' => [
10683              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/cloneRules',
10684              'httpMethod' => 'POST',
10685              'parameters' => [
10686                'project' => [
10687                  'location' => 'path',
10688                  'type' => 'string',
10689                  'required' => true,
10690                ],
10691                'region' => [
10692                  'location' => 'path',
10693                  'type' => 'string',
10694                  'required' => true,
10695                ],
10696                'firewallPolicy' => [
10697                  'location' => 'path',
10698                  'type' => 'string',
10699                  'required' => true,
10700                ],
10701                'requestId' => [
10702                  'location' => 'query',
10703                  'type' => 'string',
10704                ],
10705                'sourceFirewallPolicy' => [
10706                  'location' => 'query',
10707                  'type' => 'string',
10708                ],
10709              ],
10710            ],'delete' => [
10711              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}',
10712              'httpMethod' => 'DELETE',
10713              'parameters' => [
10714                'project' => [
10715                  'location' => 'path',
10716                  'type' => 'string',
10717                  'required' => true,
10718                ],
10719                'region' => [
10720                  'location' => 'path',
10721                  'type' => 'string',
10722                  'required' => true,
10723                ],
10724                'firewallPolicy' => [
10725                  'location' => 'path',
10726                  'type' => 'string',
10727                  'required' => true,
10728                ],
10729                'requestId' => [
10730                  'location' => 'query',
10731                  'type' => 'string',
10732                ],
10733              ],
10734            ],'get' => [
10735              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}',
10736              'httpMethod' => 'GET',
10737              'parameters' => [
10738                'project' => [
10739                  'location' => 'path',
10740                  'type' => 'string',
10741                  'required' => true,
10742                ],
10743                'region' => [
10744                  'location' => 'path',
10745                  'type' => 'string',
10746                  'required' => true,
10747                ],
10748                'firewallPolicy' => [
10749                  'location' => 'path',
10750                  'type' => 'string',
10751                  'required' => true,
10752                ],
10753              ],
10754            ],'getAssociation' => [
10755              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getAssociation',
10756              'httpMethod' => 'GET',
10757              'parameters' => [
10758                'project' => [
10759                  'location' => 'path',
10760                  'type' => 'string',
10761                  'required' => true,
10762                ],
10763                'region' => [
10764                  'location' => 'path',
10765                  'type' => 'string',
10766                  'required' => true,
10767                ],
10768                'firewallPolicy' => [
10769                  'location' => 'path',
10770                  'type' => 'string',
10771                  'required' => true,
10772                ],
10773                'name' => [
10774                  'location' => 'query',
10775                  'type' => 'string',
10776                ],
10777              ],
10778            ],'getEffectiveFirewalls' => [
10779              'path' => 'projects/{project}/regions/{region}/firewallPolicies/getEffectiveFirewalls',
10780              'httpMethod' => 'GET',
10781              'parameters' => [
10782                'project' => [
10783                  'location' => 'path',
10784                  'type' => 'string',
10785                  'required' => true,
10786                ],
10787                'region' => [
10788                  'location' => 'path',
10789                  'type' => 'string',
10790                  'required' => true,
10791                ],
10792                'network' => [
10793                  'location' => 'query',
10794                  'type' => 'string',
10795                  'required' => true,
10796                ],
10797              ],
10798            ],'getIamPolicy' => [
10799              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{resource}/getIamPolicy',
10800              'httpMethod' => 'GET',
10801              'parameters' => [
10802                'project' => [
10803                  'location' => 'path',
10804                  'type' => 'string',
10805                  'required' => true,
10806                ],
10807                'region' => [
10808                  'location' => 'path',
10809                  'type' => 'string',
10810                  'required' => true,
10811                ],
10812                'resource' => [
10813                  'location' => 'path',
10814                  'type' => 'string',
10815                  'required' => true,
10816                ],
10817                'optionsRequestedPolicyVersion' => [
10818                  'location' => 'query',
10819                  'type' => 'integer',
10820                ],
10821              ],
10822            ],'getRule' => [
10823              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/getRule',
10824              'httpMethod' => 'GET',
10825              'parameters' => [
10826                'project' => [
10827                  'location' => 'path',
10828                  'type' => 'string',
10829                  'required' => true,
10830                ],
10831                'region' => [
10832                  'location' => 'path',
10833                  'type' => 'string',
10834                  'required' => true,
10835                ],
10836                'firewallPolicy' => [
10837                  'location' => 'path',
10838                  'type' => 'string',
10839                  'required' => true,
10840                ],
10841                'priority' => [
10842                  'location' => 'query',
10843                  'type' => 'integer',
10844                ],
10845              ],
10846            ],'insert' => [
10847              'path' => 'projects/{project}/regions/{region}/firewallPolicies',
10848              'httpMethod' => 'POST',
10849              'parameters' => [
10850                'project' => [
10851                  'location' => 'path',
10852                  'type' => 'string',
10853                  'required' => true,
10854                ],
10855                'region' => [
10856                  'location' => 'path',
10857                  'type' => 'string',
10858                  'required' => true,
10859                ],
10860                'requestId' => [
10861                  'location' => 'query',
10862                  'type' => 'string',
10863                ],
10864              ],
10865            ],'list' => [
10866              'path' => 'projects/{project}/regions/{region}/firewallPolicies',
10867              'httpMethod' => 'GET',
10868              'parameters' => [
10869                'project' => [
10870                  'location' => 'path',
10871                  'type' => 'string',
10872                  'required' => true,
10873                ],
10874                'region' => [
10875                  'location' => 'path',
10876                  'type' => 'string',
10877                  'required' => true,
10878                ],
10879                'filter' => [
10880                  'location' => 'query',
10881                  'type' => 'string',
10882                ],
10883                'maxResults' => [
10884                  'location' => 'query',
10885                  'type' => 'integer',
10886                ],
10887                'orderBy' => [
10888                  'location' => 'query',
10889                  'type' => 'string',
10890                ],
10891                'pageToken' => [
10892                  'location' => 'query',
10893                  'type' => 'string',
10894                ],
10895                'returnPartialSuccess' => [
10896                  'location' => 'query',
10897                  'type' => 'boolean',
10898                ],
10899              ],
10900            ],'patch' => [
10901              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}',
10902              'httpMethod' => 'PATCH',
10903              'parameters' => [
10904                'project' => [
10905                  'location' => 'path',
10906                  'type' => 'string',
10907                  'required' => true,
10908                ],
10909                'region' => [
10910                  'location' => 'path',
10911                  'type' => 'string',
10912                  'required' => true,
10913                ],
10914                'firewallPolicy' => [
10915                  'location' => 'path',
10916                  'type' => 'string',
10917                  'required' => true,
10918                ],
10919                'requestId' => [
10920                  'location' => 'query',
10921                  'type' => 'string',
10922                ],
10923              ],
10924            ],'patchRule' => [
10925              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/patchRule',
10926              'httpMethod' => 'POST',
10927              'parameters' => [
10928                'project' => [
10929                  'location' => 'path',
10930                  'type' => 'string',
10931                  'required' => true,
10932                ],
10933                'region' => [
10934                  'location' => 'path',
10935                  'type' => 'string',
10936                  'required' => true,
10937                ],
10938                'firewallPolicy' => [
10939                  'location' => 'path',
10940                  'type' => 'string',
10941                  'required' => true,
10942                ],
10943                'priority' => [
10944                  'location' => 'query',
10945                  'type' => 'integer',
10946                ],
10947                'requestId' => [
10948                  'location' => 'query',
10949                  'type' => 'string',
10950                ],
10951              ],
10952            ],'removeAssociation' => [
10953              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeAssociation',
10954              'httpMethod' => 'POST',
10955              'parameters' => [
10956                'project' => [
10957                  'location' => 'path',
10958                  'type' => 'string',
10959                  'required' => true,
10960                ],
10961                'region' => [
10962                  'location' => 'path',
10963                  'type' => 'string',
10964                  'required' => true,
10965                ],
10966                'firewallPolicy' => [
10967                  'location' => 'path',
10968                  'type' => 'string',
10969                  'required' => true,
10970                ],
10971                'name' => [
10972                  'location' => 'query',
10973                  'type' => 'string',
10974                ],
10975                'requestId' => [
10976                  'location' => 'query',
10977                  'type' => 'string',
10978                ],
10979              ],
10980            ],'removeRule' => [
10981              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{firewallPolicy}/removeRule',
10982              'httpMethod' => 'POST',
10983              'parameters' => [
10984                'project' => [
10985                  'location' => 'path',
10986                  'type' => 'string',
10987                  'required' => true,
10988                ],
10989                'region' => [
10990                  'location' => 'path',
10991                  'type' => 'string',
10992                  'required' => true,
10993                ],
10994                'firewallPolicy' => [
10995                  'location' => 'path',
10996                  'type' => 'string',
10997                  'required' => true,
10998                ],
10999                'priority' => [
11000                  'location' => 'query',
11001                  'type' => 'integer',
11002                ],
11003                'requestId' => [
11004                  'location' => 'query',
11005                  'type' => 'string',
11006                ],
11007              ],
11008            ],'setIamPolicy' => [
11009              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{resource}/setIamPolicy',
11010              'httpMethod' => 'POST',
11011              'parameters' => [
11012                'project' => [
11013                  'location' => 'path',
11014                  'type' => 'string',
11015                  'required' => true,
11016                ],
11017                'region' => [
11018                  'location' => 'path',
11019                  'type' => 'string',
11020                  'required' => true,
11021                ],
11022                'resource' => [
11023                  'location' => 'path',
11024                  'type' => 'string',
11025                  'required' => true,
11026                ],
11027              ],
11028            ],'testIamPermissions' => [
11029              'path' => 'projects/{project}/regions/{region}/firewallPolicies/{resource}/testIamPermissions',
11030              'httpMethod' => 'POST',
11031              'parameters' => [
11032                'project' => [
11033                  'location' => 'path',
11034                  'type' => 'string',
11035                  'required' => true,
11036                ],
11037                'region' => [
11038                  'location' => 'path',
11039                  'type' => 'string',
11040                  'required' => true,
11041                ],
11042                'resource' => [
11043                  'location' => 'path',
11044                  'type' => 'string',
11045                  'required' => true,
11046                ],
11047              ],
11048            ],
11049          ]
11050        ]
11051    );
11052    $this->regionNotificationEndpoints = new Compute\Resource\RegionNotificationEndpoints(
11053        $this,
11054        $this->serviceName,
11055        'regionNotificationEndpoints',
11056        [
11057          'methods' => [
11058            'delete' => [
11059              'path' => 'projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}',
11060              'httpMethod' => 'DELETE',
11061              'parameters' => [
11062                'project' => [
11063                  'location' => 'path',
11064                  'type' => 'string',
11065                  'required' => true,
11066                ],
11067                'region' => [
11068                  'location' => 'path',
11069                  'type' => 'string',
11070                  'required' => true,
11071                ],
11072                'notificationEndpoint' => [
11073                  'location' => 'path',
11074                  'type' => 'string',
11075                  'required' => true,
11076                ],
11077                'requestId' => [
11078                  'location' => 'query',
11079                  'type' => 'string',
11080                ],
11081              ],
11082            ],'get' => [
11083              'path' => 'projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}',
11084              'httpMethod' => 'GET',
11085              'parameters' => [
11086                'project' => [
11087                  'location' => 'path',
11088                  'type' => 'string',
11089                  'required' => true,
11090                ],
11091                'region' => [
11092                  'location' => 'path',
11093                  'type' => 'string',
11094                  'required' => true,
11095                ],
11096                'notificationEndpoint' => [
11097                  'location' => 'path',
11098                  'type' => 'string',
11099                  'required' => true,
11100                ],
11101              ],
11102            ],'insert' => [
11103              'path' => 'projects/{project}/regions/{region}/notificationEndpoints',
11104              'httpMethod' => 'POST',
11105              'parameters' => [
11106                'project' => [
11107                  'location' => 'path',
11108                  'type' => 'string',
11109                  'required' => true,
11110                ],
11111                'region' => [
11112                  'location' => 'path',
11113                  'type' => 'string',
11114                  'required' => true,
11115                ],
11116                'requestId' => [
11117                  'location' => 'query',
11118                  'type' => 'string',
11119                ],
11120              ],
11121            ],'list' => [
11122              'path' => 'projects/{project}/regions/{region}/notificationEndpoints',
11123              'httpMethod' => 'GET',
11124              'parameters' => [
11125                'project' => [
11126                  'location' => 'path',
11127                  'type' => 'string',
11128                  'required' => true,
11129                ],
11130                'region' => [
11131                  'location' => 'path',
11132                  'type' => 'string',
11133                  'required' => true,
11134                ],
11135                'filter' => [
11136                  'location' => 'query',
11137                  'type' => 'string',
11138                ],
11139                'maxResults' => [
11140                  'location' => 'query',
11141                  'type' => 'integer',
11142                ],
11143                'orderBy' => [
11144                  'location' => 'query',
11145                  'type' => 'string',
11146                ],
11147                'pageToken' => [
11148                  'location' => 'query',
11149                  'type' => 'string',
11150                ],
11151                'returnPartialSuccess' => [
11152                  'location' => 'query',
11153                  'type' => 'boolean',
11154                ],
11155              ],
11156            ],
11157          ]
11158        ]
11159    );
11160    $this->regionOperations = new Compute\Resource\RegionOperations(
11161        $this,
11162        $this->serviceName,
11163        'regionOperations',
11164        [
11165          'methods' => [
11166            'delete' => [
11167              'path' => 'projects/{project}/regions/{region}/operations/{operation}',
11168              'httpMethod' => 'DELETE',
11169              'parameters' => [
11170                'project' => [
11171                  'location' => 'path',
11172                  'type' => 'string',
11173                  'required' => true,
11174                ],
11175                'region' => [
11176                  'location' => 'path',
11177                  'type' => 'string',
11178                  'required' => true,
11179                ],
11180                'operation' => [
11181                  'location' => 'path',
11182                  'type' => 'string',
11183                  'required' => true,
11184                ],
11185              ],
11186            ],'get' => [
11187              'path' => 'projects/{project}/regions/{region}/operations/{operation}',
11188              'httpMethod' => 'GET',
11189              'parameters' => [
11190                'project' => [
11191                  'location' => 'path',
11192                  'type' => 'string',
11193                  'required' => true,
11194                ],
11195                'region' => [
11196                  'location' => 'path',
11197                  'type' => 'string',
11198                  'required' => true,
11199                ],
11200                'operation' => [
11201                  'location' => 'path',
11202                  'type' => 'string',
11203                  'required' => true,
11204                ],
11205              ],
11206            ],'list' => [
11207              'path' => 'projects/{project}/regions/{region}/operations',
11208              'httpMethod' => 'GET',
11209              'parameters' => [
11210                'project' => [
11211                  'location' => 'path',
11212                  'type' => 'string',
11213                  'required' => true,
11214                ],
11215                'region' => [
11216                  'location' => 'path',
11217                  'type' => 'string',
11218                  'required' => true,
11219                ],
11220                'filter' => [
11221                  'location' => 'query',
11222                  'type' => 'string',
11223                ],
11224                'maxResults' => [
11225                  'location' => 'query',
11226                  'type' => 'integer',
11227                ],
11228                'orderBy' => [
11229                  'location' => 'query',
11230                  'type' => 'string',
11231                ],
11232                'pageToken' => [
11233                  'location' => 'query',
11234                  'type' => 'string',
11235                ],
11236                'returnPartialSuccess' => [
11237                  'location' => 'query',
11238                  'type' => 'boolean',
11239                ],
11240              ],
11241            ],'wait' => [
11242              'path' => 'projects/{project}/regions/{region}/operations/{operation}/wait',
11243              'httpMethod' => 'POST',
11244              'parameters' => [
11245                'project' => [
11246                  'location' => 'path',
11247                  'type' => 'string',
11248                  'required' => true,
11249                ],
11250                'region' => [
11251                  'location' => 'path',
11252                  'type' => 'string',
11253                  'required' => true,
11254                ],
11255                'operation' => [
11256                  'location' => 'path',
11257                  'type' => 'string',
11258                  'required' => true,
11259                ],
11260              ],
11261            ],
11262          ]
11263        ]
11264    );
11265    $this->regionSecurityPolicies = new Compute\Resource\RegionSecurityPolicies(
11266        $this,
11267        $this->serviceName,
11268        'regionSecurityPolicies',
11269        [
11270          'methods' => [
11271            'delete' => [
11272              'path' => 'projects/{project}/regions/{region}/securityPolicies/{securityPolicy}',
11273              'httpMethod' => 'DELETE',
11274              'parameters' => [
11275                'project' => [
11276                  'location' => 'path',
11277                  'type' => 'string',
11278                  'required' => true,
11279                ],
11280                'region' => [
11281                  'location' => 'path',
11282                  'type' => 'string',
11283                  'required' => true,
11284                ],
11285                'securityPolicy' => [
11286                  'location' => 'path',
11287                  'type' => 'string',
11288                  'required' => true,
11289                ],
11290                'requestId' => [
11291                  'location' => 'query',
11292                  'type' => 'string',
11293                ],
11294              ],
11295            ],'get' => [
11296              'path' => 'projects/{project}/regions/{region}/securityPolicies/{securityPolicy}',
11297              'httpMethod' => 'GET',
11298              'parameters' => [
11299                'project' => [
11300                  'location' => 'path',
11301                  'type' => 'string',
11302                  'required' => true,
11303                ],
11304                'region' => [
11305                  'location' => 'path',
11306                  'type' => 'string',
11307                  'required' => true,
11308                ],
11309                'securityPolicy' => [
11310                  'location' => 'path',
11311                  'type' => 'string',
11312                  'required' => true,
11313                ],
11314              ],
11315            ],'insert' => [
11316              'path' => 'projects/{project}/regions/{region}/securityPolicies',
11317              'httpMethod' => 'POST',
11318              'parameters' => [
11319                'project' => [
11320                  'location' => 'path',
11321                  'type' => 'string',
11322                  'required' => true,
11323                ],
11324                'region' => [
11325                  'location' => 'path',
11326                  'type' => 'string',
11327                  'required' => true,
11328                ],
11329                'requestId' => [
11330                  'location' => 'query',
11331                  'type' => 'string',
11332                ],
11333                'validateOnly' => [
11334                  'location' => 'query',
11335                  'type' => 'boolean',
11336                ],
11337              ],
11338            ],'list' => [
11339              'path' => 'projects/{project}/regions/{region}/securityPolicies',
11340              'httpMethod' => 'GET',
11341              'parameters' => [
11342                'project' => [
11343                  'location' => 'path',
11344                  'type' => 'string',
11345                  'required' => true,
11346                ],
11347                'region' => [
11348                  'location' => 'path',
11349                  'type' => 'string',
11350                  'required' => true,
11351                ],
11352                'filter' => [
11353                  'location' => 'query',
11354                  'type' => 'string',
11355                ],
11356                'maxResults' => [
11357                  'location' => 'query',
11358                  'type' => 'integer',
11359                ],
11360                'orderBy' => [
11361                  'location' => 'query',
11362                  'type' => 'string',
11363                ],
11364                'pageToken' => [
11365                  'location' => 'query',
11366                  'type' => 'string',
11367                ],
11368                'returnPartialSuccess' => [
11369                  'location' => 'query',
11370                  'type' => 'boolean',
11371                ],
11372              ],
11373            ],'patch' => [
11374              'path' => 'projects/{project}/regions/{region}/securityPolicies/{securityPolicy}',
11375              'httpMethod' => 'PATCH',
11376              'parameters' => [
11377                'project' => [
11378                  'location' => 'path',
11379                  'type' => 'string',
11380                  'required' => true,
11381                ],
11382                'region' => [
11383                  'location' => 'path',
11384                  'type' => 'string',
11385                  'required' => true,
11386                ],
11387                'securityPolicy' => [
11388                  'location' => 'path',
11389                  'type' => 'string',
11390                  'required' => true,
11391                ],
11392                'requestId' => [
11393                  'location' => 'query',
11394                  'type' => 'string',
11395                ],
11396              ],
11397            ],
11398          ]
11399        ]
11400    );
11401    $this->regionSslCertificates = new Compute\Resource\RegionSslCertificates(
11402        $this,
11403        $this->serviceName,
11404        'regionSslCertificates',
11405        [
11406          'methods' => [
11407            'delete' => [
11408              'path' => 'projects/{project}/regions/{region}/sslCertificates/{sslCertificate}',
11409              'httpMethod' => 'DELETE',
11410              'parameters' => [
11411                'project' => [
11412                  'location' => 'path',
11413                  'type' => 'string',
11414                  'required' => true,
11415                ],
11416                'region' => [
11417                  'location' => 'path',
11418                  'type' => 'string',
11419                  'required' => true,
11420                ],
11421                'sslCertificate' => [
11422                  'location' => 'path',
11423                  'type' => 'string',
11424                  'required' => true,
11425                ],
11426                'requestId' => [
11427                  'location' => 'query',
11428                  'type' => 'string',
11429                ],
11430              ],
11431            ],'get' => [
11432              'path' => 'projects/{project}/regions/{region}/sslCertificates/{sslCertificate}',
11433              'httpMethod' => 'GET',
11434              'parameters' => [
11435                'project' => [
11436                  'location' => 'path',
11437                  'type' => 'string',
11438                  'required' => true,
11439                ],
11440                'region' => [
11441                  'location' => 'path',
11442                  'type' => 'string',
11443                  'required' => true,
11444                ],
11445                'sslCertificate' => [
11446                  'location' => 'path',
11447                  'type' => 'string',
11448                  'required' => true,
11449                ],
11450              ],
11451            ],'insert' => [
11452              'path' => 'projects/{project}/regions/{region}/sslCertificates',
11453              'httpMethod' => 'POST',
11454              'parameters' => [
11455                'project' => [
11456                  'location' => 'path',
11457                  'type' => 'string',
11458                  'required' => true,
11459                ],
11460                'region' => [
11461                  'location' => 'path',
11462                  'type' => 'string',
11463                  'required' => true,
11464                ],
11465                'requestId' => [
11466                  'location' => 'query',
11467                  'type' => 'string',
11468                ],
11469              ],
11470            ],'list' => [
11471              'path' => 'projects/{project}/regions/{region}/sslCertificates',
11472              'httpMethod' => 'GET',
11473              'parameters' => [
11474                'project' => [
11475                  'location' => 'path',
11476                  'type' => 'string',
11477                  'required' => true,
11478                ],
11479                'region' => [
11480                  'location' => 'path',
11481                  'type' => 'string',
11482                  'required' => true,
11483                ],
11484                'filter' => [
11485                  'location' => 'query',
11486                  'type' => 'string',
11487                ],
11488                'maxResults' => [
11489                  'location' => 'query',
11490                  'type' => 'integer',
11491                ],
11492                'orderBy' => [
11493                  'location' => 'query',
11494                  'type' => 'string',
11495                ],
11496                'pageToken' => [
11497                  'location' => 'query',
11498                  'type' => 'string',
11499                ],
11500                'returnPartialSuccess' => [
11501                  'location' => 'query',
11502                  'type' => 'boolean',
11503                ],
11504              ],
11505            ],
11506          ]
11507        ]
11508    );
11509    $this->regionTargetHttpProxies = new Compute\Resource\RegionTargetHttpProxies(
11510        $this,
11511        $this->serviceName,
11512        'regionTargetHttpProxies',
11513        [
11514          'methods' => [
11515            'delete' => [
11516              'path' => 'projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}',
11517              'httpMethod' => 'DELETE',
11518              'parameters' => [
11519                'project' => [
11520                  'location' => 'path',
11521                  'type' => 'string',
11522                  'required' => true,
11523                ],
11524                'region' => [
11525                  'location' => 'path',
11526                  'type' => 'string',
11527                  'required' => true,
11528                ],
11529                'targetHttpProxy' => [
11530                  'location' => 'path',
11531                  'type' => 'string',
11532                  'required' => true,
11533                ],
11534                'requestId' => [
11535                  'location' => 'query',
11536                  'type' => 'string',
11537                ],
11538              ],
11539            ],'get' => [
11540              'path' => 'projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}',
11541              'httpMethod' => 'GET',
11542              'parameters' => [
11543                'project' => [
11544                  'location' => 'path',
11545                  'type' => 'string',
11546                  'required' => true,
11547                ],
11548                'region' => [
11549                  'location' => 'path',
11550                  'type' => 'string',
11551                  'required' => true,
11552                ],
11553                'targetHttpProxy' => [
11554                  'location' => 'path',
11555                  'type' => 'string',
11556                  'required' => true,
11557                ],
11558              ],
11559            ],'insert' => [
11560              'path' => 'projects/{project}/regions/{region}/targetHttpProxies',
11561              'httpMethod' => 'POST',
11562              'parameters' => [
11563                'project' => [
11564                  'location' => 'path',
11565                  'type' => 'string',
11566                  'required' => true,
11567                ],
11568                'region' => [
11569                  'location' => 'path',
11570                  'type' => 'string',
11571                  'required' => true,
11572                ],
11573                'requestId' => [
11574                  'location' => 'query',
11575                  'type' => 'string',
11576                ],
11577              ],
11578            ],'list' => [
11579              'path' => 'projects/{project}/regions/{region}/targetHttpProxies',
11580              'httpMethod' => 'GET',
11581              'parameters' => [
11582                'project' => [
11583                  'location' => 'path',
11584                  'type' => 'string',
11585                  'required' => true,
11586                ],
11587                'region' => [
11588                  'location' => 'path',
11589                  'type' => 'string',
11590                  'required' => true,
11591                ],
11592                'filter' => [
11593                  'location' => 'query',
11594                  'type' => 'string',
11595                ],
11596                'maxResults' => [
11597                  'location' => 'query',
11598                  'type' => 'integer',
11599                ],
11600                'orderBy' => [
11601                  'location' => 'query',
11602                  'type' => 'string',
11603                ],
11604                'pageToken' => [
11605                  'location' => 'query',
11606                  'type' => 'string',
11607                ],
11608                'returnPartialSuccess' => [
11609                  'location' => 'query',
11610                  'type' => 'boolean',
11611                ],
11612              ],
11613            ],'setUrlMap' => [
11614              'path' => 'projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap',
11615              'httpMethod' => 'POST',
11616              'parameters' => [
11617                'project' => [
11618                  'location' => 'path',
11619                  'type' => 'string',
11620                  'required' => true,
11621                ],
11622                'region' => [
11623                  'location' => 'path',
11624                  'type' => 'string',
11625                  'required' => true,
11626                ],
11627                'targetHttpProxy' => [
11628                  'location' => 'path',
11629                  'type' => 'string',
11630                  'required' => true,
11631                ],
11632                'requestId' => [
11633                  'location' => 'query',
11634                  'type' => 'string',
11635                ],
11636              ],
11637            ],
11638          ]
11639        ]
11640    );
11641    $this->regionTargetHttpsProxies = new Compute\Resource\RegionTargetHttpsProxies(
11642        $this,
11643        $this->serviceName,
11644        'regionTargetHttpsProxies',
11645        [
11646          'methods' => [
11647            'delete' => [
11648              'path' => 'projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}',
11649              'httpMethod' => 'DELETE',
11650              'parameters' => [
11651                'project' => [
11652                  'location' => 'path',
11653                  'type' => 'string',
11654                  'required' => true,
11655                ],
11656                'region' => [
11657                  'location' => 'path',
11658                  'type' => 'string',
11659                  'required' => true,
11660                ],
11661                'targetHttpsProxy' => [
11662                  'location' => 'path',
11663                  'type' => 'string',
11664                  'required' => true,
11665                ],
11666                'requestId' => [
11667                  'location' => 'query',
11668                  'type' => 'string',
11669                ],
11670              ],
11671            ],'get' => [
11672              'path' => 'projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}',
11673              'httpMethod' => 'GET',
11674              'parameters' => [
11675                'project' => [
11676                  'location' => 'path',
11677                  'type' => 'string',
11678                  'required' => true,
11679                ],
11680                'region' => [
11681                  'location' => 'path',
11682                  'type' => 'string',
11683                  'required' => true,
11684                ],
11685                'targetHttpsProxy' => [
11686                  'location' => 'path',
11687                  'type' => 'string',
11688                  'required' => true,
11689                ],
11690              ],
11691            ],'insert' => [
11692              'path' => 'projects/{project}/regions/{region}/targetHttpsProxies',
11693              'httpMethod' => 'POST',
11694              'parameters' => [
11695                'project' => [
11696                  'location' => 'path',
11697                  'type' => 'string',
11698                  'required' => true,
11699                ],
11700                'region' => [
11701                  'location' => 'path',
11702                  'type' => 'string',
11703                  'required' => true,
11704                ],
11705                'requestId' => [
11706                  'location' => 'query',
11707                  'type' => 'string',
11708                ],
11709              ],
11710            ],'list' => [
11711              'path' => 'projects/{project}/regions/{region}/targetHttpsProxies',
11712              'httpMethod' => 'GET',
11713              'parameters' => [
11714                'project' => [
11715                  'location' => 'path',
11716                  'type' => 'string',
11717                  'required' => true,
11718                ],
11719                'region' => [
11720                  'location' => 'path',
11721                  'type' => 'string',
11722                  'required' => true,
11723                ],
11724                'filter' => [
11725                  'location' => 'query',
11726                  'type' => 'string',
11727                ],
11728                'maxResults' => [
11729                  'location' => 'query',
11730                  'type' => 'integer',
11731                ],
11732                'orderBy' => [
11733                  'location' => 'query',
11734                  'type' => 'string',
11735                ],
11736                'pageToken' => [
11737                  'location' => 'query',
11738                  'type' => 'string',
11739                ],
11740                'returnPartialSuccess' => [
11741                  'location' => 'query',
11742                  'type' => 'boolean',
11743                ],
11744              ],
11745            ],'patch' => [
11746              'path' => 'projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}',
11747              'httpMethod' => 'PATCH',
11748              'parameters' => [
11749                'project' => [
11750                  'location' => 'path',
11751                  'type' => 'string',
11752                  'required' => true,
11753                ],
11754                'region' => [
11755                  'location' => 'path',
11756                  'type' => 'string',
11757                  'required' => true,
11758                ],
11759                'targetHttpsProxy' => [
11760                  'location' => 'path',
11761                  'type' => 'string',
11762                  'required' => true,
11763                ],
11764                'requestId' => [
11765                  'location' => 'query',
11766                  'type' => 'string',
11767                ],
11768              ],
11769            ],'setSslCertificates' => [
11770              'path' => 'projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates',
11771              'httpMethod' => 'POST',
11772              'parameters' => [
11773                'project' => [
11774                  'location' => 'path',
11775                  'type' => 'string',
11776                  'required' => true,
11777                ],
11778                'region' => [
11779                  'location' => 'path',
11780                  'type' => 'string',
11781                  'required' => true,
11782                ],
11783                'targetHttpsProxy' => [
11784                  'location' => 'path',
11785                  'type' => 'string',
11786                  'required' => true,
11787                ],
11788                'requestId' => [
11789                  'location' => 'query',
11790                  'type' => 'string',
11791                ],
11792              ],
11793            ],'setUrlMap' => [
11794              'path' => 'projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap',
11795              'httpMethod' => 'POST',
11796              'parameters' => [
11797                'project' => [
11798                  'location' => 'path',
11799                  'type' => 'string',
11800                  'required' => true,
11801                ],
11802                'region' => [
11803                  'location' => 'path',
11804                  'type' => 'string',
11805                  'required' => true,
11806                ],
11807                'targetHttpsProxy' => [
11808                  'location' => 'path',
11809                  'type' => 'string',
11810                  'required' => true,
11811                ],
11812                'requestId' => [
11813                  'location' => 'query',
11814                  'type' => 'string',
11815                ],
11816              ],
11817            ],
11818          ]
11819        ]
11820    );
11821    $this->regionUrlMaps = new Compute\Resource\RegionUrlMaps(
11822        $this,
11823        $this->serviceName,
11824        'regionUrlMaps',
11825        [
11826          'methods' => [
11827            'delete' => [
11828              'path' => 'projects/{project}/regions/{region}/urlMaps/{urlMap}',
11829              'httpMethod' => 'DELETE',
11830              'parameters' => [
11831                'project' => [
11832                  'location' => 'path',
11833                  'type' => 'string',
11834                  'required' => true,
11835                ],
11836                'region' => [
11837                  'location' => 'path',
11838                  'type' => 'string',
11839                  'required' => true,
11840                ],
11841                'urlMap' => [
11842                  'location' => 'path',
11843                  'type' => 'string',
11844                  'required' => true,
11845                ],
11846                'requestId' => [
11847                  'location' => 'query',
11848                  'type' => 'string',
11849                ],
11850              ],
11851            ],'get' => [
11852              'path' => 'projects/{project}/regions/{region}/urlMaps/{urlMap}',
11853              'httpMethod' => 'GET',
11854              'parameters' => [
11855                'project' => [
11856                  'location' => 'path',
11857                  'type' => 'string',
11858                  'required' => true,
11859                ],
11860                'region' => [
11861                  'location' => 'path',
11862                  'type' => 'string',
11863                  'required' => true,
11864                ],
11865                'urlMap' => [
11866                  'location' => 'path',
11867                  'type' => 'string',
11868                  'required' => true,
11869                ],
11870              ],
11871            ],'insert' => [
11872              'path' => 'projects/{project}/regions/{region}/urlMaps',
11873              'httpMethod' => 'POST',
11874              'parameters' => [
11875                'project' => [
11876                  'location' => 'path',
11877                  'type' => 'string',
11878                  'required' => true,
11879                ],
11880                'region' => [
11881                  'location' => 'path',
11882                  'type' => 'string',
11883                  'required' => true,
11884                ],
11885                'requestId' => [
11886                  'location' => 'query',
11887                  'type' => 'string',
11888                ],
11889              ],
11890            ],'list' => [
11891              'path' => 'projects/{project}/regions/{region}/urlMaps',
11892              'httpMethod' => 'GET',
11893              'parameters' => [
11894                'project' => [
11895                  'location' => 'path',
11896                  'type' => 'string',
11897                  'required' => true,
11898                ],
11899                'region' => [
11900                  'location' => 'path',
11901                  'type' => 'string',
11902                  'required' => true,
11903                ],
11904                'filter' => [
11905                  'location' => 'query',
11906                  'type' => 'string',
11907                ],
11908                'maxResults' => [
11909                  'location' => 'query',
11910                  'type' => 'integer',
11911                ],
11912                'orderBy' => [
11913                  'location' => 'query',
11914                  'type' => 'string',
11915                ],
11916                'pageToken' => [
11917                  'location' => 'query',
11918                  'type' => 'string',
11919                ],
11920                'returnPartialSuccess' => [
11921                  'location' => 'query',
11922                  'type' => 'boolean',
11923                ],
11924              ],
11925            ],'patch' => [
11926              'path' => 'projects/{project}/regions/{region}/urlMaps/{urlMap}',
11927              'httpMethod' => 'PATCH',
11928              'parameters' => [
11929                'project' => [
11930                  'location' => 'path',
11931                  'type' => 'string',
11932                  'required' => true,
11933                ],
11934                'region' => [
11935                  'location' => 'path',
11936                  'type' => 'string',
11937                  'required' => true,
11938                ],
11939                'urlMap' => [
11940                  'location' => 'path',
11941                  'type' => 'string',
11942                  'required' => true,
11943                ],
11944                'requestId' => [
11945                  'location' => 'query',
11946                  'type' => 'string',
11947                ],
11948              ],
11949            ],'update' => [
11950              'path' => 'projects/{project}/regions/{region}/urlMaps/{urlMap}',
11951              'httpMethod' => 'PUT',
11952              'parameters' => [
11953                'project' => [
11954                  'location' => 'path',
11955                  'type' => 'string',
11956                  'required' => true,
11957                ],
11958                'region' => [
11959                  'location' => 'path',
11960                  'type' => 'string',
11961                  'required' => true,
11962                ],
11963                'urlMap' => [
11964                  'location' => 'path',
11965                  'type' => 'string',
11966                  'required' => true,
11967                ],
11968                'requestId' => [
11969                  'location' => 'query',
11970                  'type' => 'string',
11971                ],
11972              ],
11973            ],'validate' => [
11974              'path' => 'projects/{project}/regions/{region}/urlMaps/{urlMap}/validate',
11975              'httpMethod' => 'POST',
11976              'parameters' => [
11977                'project' => [
11978                  'location' => 'path',
11979                  'type' => 'string',
11980                  'required' => true,
11981                ],
11982                'region' => [
11983                  'location' => 'path',
11984                  'type' => 'string',
11985                  'required' => true,
11986                ],
11987                'urlMap' => [
11988                  'location' => 'path',
11989                  'type' => 'string',
11990                  'required' => true,
11991                ],
11992              ],
11993            ],
11994          ]
11995        ]
11996    );
11997    $this->regions = new Compute\Resource\Regions(
11998        $this,
11999        $this->serviceName,
12000        'regions',
12001        [
12002          'methods' => [
12003            'get' => [
12004              'path' => 'projects/{project}/regions/{region}',
12005              'httpMethod' => 'GET',
12006              'parameters' => [
12007                'project' => [
12008                  'location' => 'path',
12009                  'type' => 'string',
12010                  'required' => true,
12011                ],
12012                'region' => [
12013                  'location' => 'path',
12014                  'type' => 'string',
12015                  'required' => true,
12016                ],
12017              ],
12018            ],'list' => [
12019              'path' => 'projects/{project}/regions',
12020              'httpMethod' => 'GET',
12021              'parameters' => [
12022                'project' => [
12023                  'location' => 'path',
12024                  'type' => 'string',
12025                  'required' => true,
12026                ],
12027                'filter' => [
12028                  'location' => 'query',
12029                  'type' => 'string',
12030                ],
12031                'maxResults' => [
12032                  'location' => 'query',
12033                  'type' => 'integer',
12034                ],
12035                'orderBy' => [
12036                  'location' => 'query',
12037                  'type' => 'string',
12038                ],
12039                'pageToken' => [
12040                  'location' => 'query',
12041                  'type' => 'string',
12042                ],
12043                'returnPartialSuccess' => [
12044                  'location' => 'query',
12045                  'type' => 'boolean',
12046                ],
12047              ],
12048            ],
12049          ]
12050        ]
12051    );
12052    $this->reservations = new Compute\Resource\Reservations(
12053        $this,
12054        $this->serviceName,
12055        'reservations',
12056        [
12057          'methods' => [
12058            'aggregatedList' => [
12059              'path' => 'projects/{project}/aggregated/reservations',
12060              'httpMethod' => 'GET',
12061              'parameters' => [
12062                'project' => [
12063                  'location' => 'path',
12064                  'type' => 'string',
12065                  'required' => true,
12066                ],
12067                'filter' => [
12068                  'location' => 'query',
12069                  'type' => 'string',
12070                ],
12071                'includeAllScopes' => [
12072                  'location' => 'query',
12073                  'type' => 'boolean',
12074                ],
12075                'maxResults' => [
12076                  'location' => 'query',
12077                  'type' => 'integer',
12078                ],
12079                'orderBy' => [
12080                  'location' => 'query',
12081                  'type' => 'string',
12082                ],
12083                'pageToken' => [
12084                  'location' => 'query',
12085                  'type' => 'string',
12086                ],
12087                'returnPartialSuccess' => [
12088                  'location' => 'query',
12089                  'type' => 'boolean',
12090                ],
12091              ],
12092            ],'delete' => [
12093              'path' => 'projects/{project}/zones/{zone}/reservations/{reservation}',
12094              'httpMethod' => 'DELETE',
12095              'parameters' => [
12096                'project' => [
12097                  'location' => 'path',
12098                  'type' => 'string',
12099                  'required' => true,
12100                ],
12101                'zone' => [
12102                  'location' => 'path',
12103                  'type' => 'string',
12104                  'required' => true,
12105                ],
12106                'reservation' => [
12107                  'location' => 'path',
12108                  'type' => 'string',
12109                  'required' => true,
12110                ],
12111                'requestId' => [
12112                  'location' => 'query',
12113                  'type' => 'string',
12114                ],
12115              ],
12116            ],'get' => [
12117              'path' => 'projects/{project}/zones/{zone}/reservations/{reservation}',
12118              'httpMethod' => 'GET',
12119              'parameters' => [
12120                'project' => [
12121                  'location' => 'path',
12122                  'type' => 'string',
12123                  'required' => true,
12124                ],
12125                'zone' => [
12126                  'location' => 'path',
12127                  'type' => 'string',
12128                  'required' => true,
12129                ],
12130                'reservation' => [
12131                  'location' => 'path',
12132                  'type' => 'string',
12133                  'required' => true,
12134                ],
12135              ],
12136            ],'getIamPolicy' => [
12137              'path' => 'projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy',
12138              'httpMethod' => 'GET',
12139              'parameters' => [
12140                'project' => [
12141                  'location' => 'path',
12142                  'type' => 'string',
12143                  'required' => true,
12144                ],
12145                'zone' => [
12146                  'location' => 'path',
12147                  'type' => 'string',
12148                  'required' => true,
12149                ],
12150                'resource' => [
12151                  'location' => 'path',
12152                  'type' => 'string',
12153                  'required' => true,
12154                ],
12155                'optionsRequestedPolicyVersion' => [
12156                  'location' => 'query',
12157                  'type' => 'integer',
12158                ],
12159              ],
12160            ],'insert' => [
12161              'path' => 'projects/{project}/zones/{zone}/reservations',
12162              'httpMethod' => 'POST',
12163              'parameters' => [
12164                'project' => [
12165                  'location' => 'path',
12166                  'type' => 'string',
12167                  'required' => true,
12168                ],
12169                'zone' => [
12170                  'location' => 'path',
12171                  'type' => 'string',
12172                  'required' => true,
12173                ],
12174                'requestId' => [
12175                  'location' => 'query',
12176                  'type' => 'string',
12177                ],
12178              ],
12179            ],'list' => [
12180              'path' => 'projects/{project}/zones/{zone}/reservations',
12181              'httpMethod' => 'GET',
12182              'parameters' => [
12183                'project' => [
12184                  'location' => 'path',
12185                  'type' => 'string',
12186                  'required' => true,
12187                ],
12188                'zone' => [
12189                  'location' => 'path',
12190                  'type' => 'string',
12191                  'required' => true,
12192                ],
12193                'filter' => [
12194                  'location' => 'query',
12195                  'type' => 'string',
12196                ],
12197                'maxResults' => [
12198                  'location' => 'query',
12199                  'type' => 'integer',
12200                ],
12201                'orderBy' => [
12202                  'location' => 'query',
12203                  'type' => 'string',
12204                ],
12205                'pageToken' => [
12206                  'location' => 'query',
12207                  'type' => 'string',
12208                ],
12209                'returnPartialSuccess' => [
12210                  'location' => 'query',
12211                  'type' => 'boolean',
12212                ],
12213              ],
12214            ],'resize' => [
12215              'path' => 'projects/{project}/zones/{zone}/reservations/{reservation}/resize',
12216              'httpMethod' => 'POST',
12217              'parameters' => [
12218                'project' => [
12219                  'location' => 'path',
12220                  'type' => 'string',
12221                  'required' => true,
12222                ],
12223                'zone' => [
12224                  'location' => 'path',
12225                  'type' => 'string',
12226                  'required' => true,
12227                ],
12228                'reservation' => [
12229                  'location' => 'path',
12230                  'type' => 'string',
12231                  'required' => true,
12232                ],
12233                'requestId' => [
12234                  'location' => 'query',
12235                  'type' => 'string',
12236                ],
12237              ],
12238            ],'setIamPolicy' => [
12239              'path' => 'projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy',
12240              'httpMethod' => 'POST',
12241              'parameters' => [
12242                'project' => [
12243                  'location' => 'path',
12244                  'type' => 'string',
12245                  'required' => true,
12246                ],
12247                'zone' => [
12248                  'location' => 'path',
12249                  'type' => 'string',
12250                  'required' => true,
12251                ],
12252                'resource' => [
12253                  'location' => 'path',
12254                  'type' => 'string',
12255                  'required' => true,
12256                ],
12257              ],
12258            ],'testIamPermissions' => [
12259              'path' => 'projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions',
12260              'httpMethod' => 'POST',
12261              'parameters' => [
12262                'project' => [
12263                  'location' => 'path',
12264                  'type' => 'string',
12265                  'required' => true,
12266                ],
12267                'zone' => [
12268                  'location' => 'path',
12269                  'type' => 'string',
12270                  'required' => true,
12271                ],
12272                'resource' => [
12273                  'location' => 'path',
12274                  'type' => 'string',
12275                  'required' => true,
12276                ],
12277              ],
12278            ],'update' => [
12279              'path' => 'projects/{project}/zones/{zone}/reservations/{reservation}',
12280              'httpMethod' => 'PATCH',
12281              'parameters' => [
12282                'project' => [
12283                  'location' => 'path',
12284                  'type' => 'string',
12285                  'required' => true,
12286                ],
12287                'zone' => [
12288                  'location' => 'path',
12289                  'type' => 'string',
12290                  'required' => true,
12291                ],
12292                'reservation' => [
12293                  'location' => 'path',
12294                  'type' => 'string',
12295                  'required' => true,
12296                ],
12297                'paths' => [
12298                  'location' => 'query',
12299                  'type' => 'string',
12300                  'repeated' => true,
12301                ],
12302                'requestId' => [
12303                  'location' => 'query',
12304                  'type' => 'string',
12305                ],
12306                'updateMask' => [
12307                  'location' => 'query',
12308                  'type' => 'string',
12309                ],
12310              ],
12311            ],
12312          ]
12313        ]
12314    );
12315    $this->resourcePolicies = new Compute\Resource\ResourcePolicies(
12316        $this,
12317        $this->serviceName,
12318        'resourcePolicies',
12319        [
12320          'methods' => [
12321            'aggregatedList' => [
12322              'path' => 'projects/{project}/aggregated/resourcePolicies',
12323              'httpMethod' => 'GET',
12324              'parameters' => [
12325                'project' => [
12326                  'location' => 'path',
12327                  'type' => 'string',
12328                  'required' => true,
12329                ],
12330                'filter' => [
12331                  'location' => 'query',
12332                  'type' => 'string',
12333                ],
12334                'includeAllScopes' => [
12335                  'location' => 'query',
12336                  'type' => 'boolean',
12337                ],
12338                'maxResults' => [
12339                  'location' => 'query',
12340                  'type' => 'integer',
12341                ],
12342                'orderBy' => [
12343                  'location' => 'query',
12344                  'type' => 'string',
12345                ],
12346                'pageToken' => [
12347                  'location' => 'query',
12348                  'type' => 'string',
12349                ],
12350                'returnPartialSuccess' => [
12351                  'location' => 'query',
12352                  'type' => 'boolean',
12353                ],
12354              ],
12355            ],'delete' => [
12356              'path' => 'projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}',
12357              'httpMethod' => 'DELETE',
12358              'parameters' => [
12359                'project' => [
12360                  'location' => 'path',
12361                  'type' => 'string',
12362                  'required' => true,
12363                ],
12364                'region' => [
12365                  'location' => 'path',
12366                  'type' => 'string',
12367                  'required' => true,
12368                ],
12369                'resourcePolicy' => [
12370                  'location' => 'path',
12371                  'type' => 'string',
12372                  'required' => true,
12373                ],
12374                'requestId' => [
12375                  'location' => 'query',
12376                  'type' => 'string',
12377                ],
12378              ],
12379            ],'get' => [
12380              'path' => 'projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}',
12381              'httpMethod' => 'GET',
12382              'parameters' => [
12383                'project' => [
12384                  'location' => 'path',
12385                  'type' => 'string',
12386                  'required' => true,
12387                ],
12388                'region' => [
12389                  'location' => 'path',
12390                  'type' => 'string',
12391                  'required' => true,
12392                ],
12393                'resourcePolicy' => [
12394                  'location' => 'path',
12395                  'type' => 'string',
12396                  'required' => true,
12397                ],
12398              ],
12399            ],'getIamPolicy' => [
12400              'path' => 'projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy',
12401              'httpMethod' => 'GET',
12402              'parameters' => [
12403                'project' => [
12404                  'location' => 'path',
12405                  'type' => 'string',
12406                  'required' => true,
12407                ],
12408                'region' => [
12409                  'location' => 'path',
12410                  'type' => 'string',
12411                  'required' => true,
12412                ],
12413                'resource' => [
12414                  'location' => 'path',
12415                  'type' => 'string',
12416                  'required' => true,
12417                ],
12418                'optionsRequestedPolicyVersion' => [
12419                  'location' => 'query',
12420                  'type' => 'integer',
12421                ],
12422              ],
12423            ],'insert' => [
12424              'path' => 'projects/{project}/regions/{region}/resourcePolicies',
12425              'httpMethod' => 'POST',
12426              'parameters' => [
12427                'project' => [
12428                  'location' => 'path',
12429                  'type' => 'string',
12430                  'required' => true,
12431                ],
12432                'region' => [
12433                  'location' => 'path',
12434                  'type' => 'string',
12435                  'required' => true,
12436                ],
12437                'requestId' => [
12438                  'location' => 'query',
12439                  'type' => 'string',
12440                ],
12441              ],
12442            ],'list' => [
12443              'path' => 'projects/{project}/regions/{region}/resourcePolicies',
12444              'httpMethod' => 'GET',
12445              'parameters' => [
12446                'project' => [
12447                  'location' => 'path',
12448                  'type' => 'string',
12449                  'required' => true,
12450                ],
12451                'region' => [
12452                  'location' => 'path',
12453                  'type' => 'string',
12454                  'required' => true,
12455                ],
12456                'filter' => [
12457                  'location' => 'query',
12458                  'type' => 'string',
12459                ],
12460                'maxResults' => [
12461                  'location' => 'query',
12462                  'type' => 'integer',
12463                ],
12464                'orderBy' => [
12465                  'location' => 'query',
12466                  'type' => 'string',
12467                ],
12468                'pageToken' => [
12469                  'location' => 'query',
12470                  'type' => 'string',
12471                ],
12472                'returnPartialSuccess' => [
12473                  'location' => 'query',
12474                  'type' => 'boolean',
12475                ],
12476              ],
12477            ],'setIamPolicy' => [
12478              'path' => 'projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy',
12479              'httpMethod' => 'POST',
12480              'parameters' => [
12481                'project' => [
12482                  'location' => 'path',
12483                  'type' => 'string',
12484                  'required' => true,
12485                ],
12486                'region' => [
12487                  'location' => 'path',
12488                  'type' => 'string',
12489                  'required' => true,
12490                ],
12491                'resource' => [
12492                  'location' => 'path',
12493                  'type' => 'string',
12494                  'required' => true,
12495                ],
12496              ],
12497            ],'testIamPermissions' => [
12498              'path' => 'projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions',
12499              'httpMethod' => 'POST',
12500              'parameters' => [
12501                'project' => [
12502                  'location' => 'path',
12503                  'type' => 'string',
12504                  'required' => true,
12505                ],
12506                'region' => [
12507                  'location' => 'path',
12508                  'type' => 'string',
12509                  'required' => true,
12510                ],
12511                'resource' => [
12512                  'location' => 'path',
12513                  'type' => 'string',
12514                  'required' => true,
12515                ],
12516              ],
12517            ],
12518          ]
12519        ]
12520    );
12521    $this->routers = new Compute\Resource\Routers(
12522        $this,
12523        $this->serviceName,
12524        'routers',
12525        [
12526          'methods' => [
12527            'aggregatedList' => [
12528              'path' => 'projects/{project}/aggregated/routers',
12529              'httpMethod' => 'GET',
12530              'parameters' => [
12531                'project' => [
12532                  'location' => 'path',
12533                  'type' => 'string',
12534                  'required' => true,
12535                ],
12536                'filter' => [
12537                  'location' => 'query',
12538                  'type' => 'string',
12539                ],
12540                'includeAllScopes' => [
12541                  'location' => 'query',
12542                  'type' => 'boolean',
12543                ],
12544                'maxResults' => [
12545                  'location' => 'query',
12546                  'type' => 'integer',
12547                ],
12548                'orderBy' => [
12549                  'location' => 'query',
12550                  'type' => 'string',
12551                ],
12552                'pageToken' => [
12553                  'location' => 'query',
12554                  'type' => 'string',
12555                ],
12556                'returnPartialSuccess' => [
12557                  'location' => 'query',
12558                  'type' => 'boolean',
12559                ],
12560              ],
12561            ],'delete' => [
12562              'path' => 'projects/{project}/regions/{region}/routers/{router}',
12563              'httpMethod' => 'DELETE',
12564              'parameters' => [
12565                'project' => [
12566                  'location' => 'path',
12567                  'type' => 'string',
12568                  'required' => true,
12569                ],
12570                'region' => [
12571                  'location' => 'path',
12572                  'type' => 'string',
12573                  'required' => true,
12574                ],
12575                'router' => [
12576                  'location' => 'path',
12577                  'type' => 'string',
12578                  'required' => true,
12579                ],
12580                'requestId' => [
12581                  'location' => 'query',
12582                  'type' => 'string',
12583                ],
12584              ],
12585            ],'get' => [
12586              'path' => 'projects/{project}/regions/{region}/routers/{router}',
12587              'httpMethod' => 'GET',
12588              'parameters' => [
12589                'project' => [
12590                  'location' => 'path',
12591                  'type' => 'string',
12592                  'required' => true,
12593                ],
12594                'region' => [
12595                  'location' => 'path',
12596                  'type' => 'string',
12597                  'required' => true,
12598                ],
12599                'router' => [
12600                  'location' => 'path',
12601                  'type' => 'string',
12602                  'required' => true,
12603                ],
12604              ],
12605            ],'getNatMappingInfo' => [
12606              'path' => 'projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo',
12607              'httpMethod' => 'GET',
12608              'parameters' => [
12609                'project' => [
12610                  'location' => 'path',
12611                  'type' => 'string',
12612                  'required' => true,
12613                ],
12614                'region' => [
12615                  'location' => 'path',
12616                  'type' => 'string',
12617                  'required' => true,
12618                ],
12619                'router' => [
12620                  'location' => 'path',
12621                  'type' => 'string',
12622                  'required' => true,
12623                ],
12624                'filter' => [
12625                  'location' => 'query',
12626                  'type' => 'string',
12627                ],
12628                'maxResults' => [
12629                  'location' => 'query',
12630                  'type' => 'integer',
12631                ],
12632                'orderBy' => [
12633                  'location' => 'query',
12634                  'type' => 'string',
12635                ],
12636                'pageToken' => [
12637                  'location' => 'query',
12638                  'type' => 'string',
12639                ],
12640                'returnPartialSuccess' => [
12641                  'location' => 'query',
12642                  'type' => 'boolean',
12643                ],
12644              ],
12645            ],'getRouterStatus' => [
12646              'path' => 'projects/{project}/regions/{region}/routers/{router}/getRouterStatus',
12647              'httpMethod' => 'GET',
12648              'parameters' => [
12649                'project' => [
12650                  'location' => 'path',
12651                  'type' => 'string',
12652                  'required' => true,
12653                ],
12654                'region' => [
12655                  'location' => 'path',
12656                  'type' => 'string',
12657                  'required' => true,
12658                ],
12659                'router' => [
12660                  'location' => 'path',
12661                  'type' => 'string',
12662                  'required' => true,
12663                ],
12664              ],
12665            ],'insert' => [
12666              'path' => 'projects/{project}/regions/{region}/routers',
12667              'httpMethod' => 'POST',
12668              'parameters' => [
12669                'project' => [
12670                  'location' => 'path',
12671                  'type' => 'string',
12672                  'required' => true,
12673                ],
12674                'region' => [
12675                  'location' => 'path',
12676                  'type' => 'string',
12677                  'required' => true,
12678                ],
12679                'requestId' => [
12680                  'location' => 'query',
12681                  'type' => 'string',
12682                ],
12683              ],
12684            ],'list' => [
12685              'path' => 'projects/{project}/regions/{region}/routers',
12686              'httpMethod' => 'GET',
12687              'parameters' => [
12688                'project' => [
12689                  'location' => 'path',
12690                  'type' => 'string',
12691                  'required' => true,
12692                ],
12693                'region' => [
12694                  'location' => 'path',
12695                  'type' => 'string',
12696                  'required' => true,
12697                ],
12698                'filter' => [
12699                  'location' => 'query',
12700                  'type' => 'string',
12701                ],
12702                'maxResults' => [
12703                  'location' => 'query',
12704                  'type' => 'integer',
12705                ],
12706                'orderBy' => [
12707                  'location' => 'query',
12708                  'type' => 'string',
12709                ],
12710                'pageToken' => [
12711                  'location' => 'query',
12712                  'type' => 'string',
12713                ],
12714                'returnPartialSuccess' => [
12715                  'location' => 'query',
12716                  'type' => 'boolean',
12717                ],
12718              ],
12719            ],'patch' => [
12720              'path' => 'projects/{project}/regions/{region}/routers/{router}',
12721              'httpMethod' => 'PATCH',
12722              'parameters' => [
12723                'project' => [
12724                  'location' => 'path',
12725                  'type' => 'string',
12726                  'required' => true,
12727                ],
12728                'region' => [
12729                  'location' => 'path',
12730                  'type' => 'string',
12731                  'required' => true,
12732                ],
12733                'router' => [
12734                  'location' => 'path',
12735                  'type' => 'string',
12736                  'required' => true,
12737                ],
12738                'requestId' => [
12739                  'location' => 'query',
12740                  'type' => 'string',
12741                ],
12742              ],
12743            ],'preview' => [
12744              'path' => 'projects/{project}/regions/{region}/routers/{router}/preview',
12745              'httpMethod' => 'POST',
12746              'parameters' => [
12747                'project' => [
12748                  'location' => 'path',
12749                  'type' => 'string',
12750                  'required' => true,
12751                ],
12752                'region' => [
12753                  'location' => 'path',
12754                  'type' => 'string',
12755                  'required' => true,
12756                ],
12757                'router' => [
12758                  'location' => 'path',
12759                  'type' => 'string',
12760                  'required' => true,
12761                ],
12762              ],
12763            ],'update' => [
12764              'path' => 'projects/{project}/regions/{region}/routers/{router}',
12765              'httpMethod' => 'PUT',
12766              'parameters' => [
12767                'project' => [
12768                  'location' => 'path',
12769                  'type' => 'string',
12770                  'required' => true,
12771                ],
12772                'region' => [
12773                  'location' => 'path',
12774                  'type' => 'string',
12775                  'required' => true,
12776                ],
12777                'router' => [
12778                  'location' => 'path',
12779                  'type' => 'string',
12780                  'required' => true,
12781                ],
12782                'requestId' => [
12783                  'location' => 'query',
12784                  'type' => 'string',
12785                ],
12786              ],
12787            ],
12788          ]
12789        ]
12790    );
12791    $this->routes = new Compute\Resource\Routes(
12792        $this,
12793        $this->serviceName,
12794        'routes',
12795        [
12796          'methods' => [
12797            'delete' => [
12798              'path' => 'projects/{project}/global/routes/{route}',
12799              'httpMethod' => 'DELETE',
12800              'parameters' => [
12801                'project' => [
12802                  'location' => 'path',
12803                  'type' => 'string',
12804                  'required' => true,
12805                ],
12806                'route' => [
12807                  'location' => 'path',
12808                  'type' => 'string',
12809                  'required' => true,
12810                ],
12811                'requestId' => [
12812                  'location' => 'query',
12813                  'type' => 'string',
12814                ],
12815              ],
12816            ],'get' => [
12817              'path' => 'projects/{project}/global/routes/{route}',
12818              'httpMethod' => 'GET',
12819              'parameters' => [
12820                'project' => [
12821                  'location' => 'path',
12822                  'type' => 'string',
12823                  'required' => true,
12824                ],
12825                'route' => [
12826                  'location' => 'path',
12827                  'type' => 'string',
12828                  'required' => true,
12829                ],
12830              ],
12831            ],'insert' => [
12832              'path' => 'projects/{project}/global/routes',
12833              'httpMethod' => 'POST',
12834              'parameters' => [
12835                'project' => [
12836                  'location' => 'path',
12837                  'type' => 'string',
12838                  'required' => true,
12839                ],
12840                'requestId' => [
12841                  'location' => 'query',
12842                  'type' => 'string',
12843                ],
12844              ],
12845            ],'list' => [
12846              'path' => 'projects/{project}/global/routes',
12847              'httpMethod' => 'GET',
12848              'parameters' => [
12849                'project' => [
12850                  'location' => 'path',
12851                  'type' => 'string',
12852                  'required' => true,
12853                ],
12854                'filter' => [
12855                  'location' => 'query',
12856                  'type' => 'string',
12857                ],
12858                'maxResults' => [
12859                  'location' => 'query',
12860                  'type' => 'integer',
12861                ],
12862                'orderBy' => [
12863                  'location' => 'query',
12864                  'type' => 'string',
12865                ],
12866                'pageToken' => [
12867                  'location' => 'query',
12868                  'type' => 'string',
12869                ],
12870                'returnPartialSuccess' => [
12871                  'location' => 'query',
12872                  'type' => 'boolean',
12873                ],
12874              ],
12875            ],
12876          ]
12877        ]
12878    );
12879    $this->securityPolicies = new Compute\Resource\SecurityPolicies(
12880        $this,
12881        $this->serviceName,
12882        'securityPolicies',
12883        [
12884          'methods' => [
12885            'addRule' => [
12886              'path' => 'projects/{project}/global/securityPolicies/{securityPolicy}/addRule',
12887              'httpMethod' => 'POST',
12888              'parameters' => [
12889                'project' => [
12890                  'location' => 'path',
12891                  'type' => 'string',
12892                  'required' => true,
12893                ],
12894                'securityPolicy' => [
12895                  'location' => 'path',
12896                  'type' => 'string',
12897                  'required' => true,
12898                ],
12899              ],
12900            ],'aggregatedList' => [
12901              'path' => 'projects/{project}/aggregated/securityPolicies',
12902              'httpMethod' => 'GET',
12903              'parameters' => [
12904                'project' => [
12905                  'location' => 'path',
12906                  'type' => 'string',
12907                  'required' => true,
12908                ],
12909                'filter' => [
12910                  'location' => 'query',
12911                  'type' => 'string',
12912                ],
12913                'includeAllScopes' => [
12914                  'location' => 'query',
12915                  'type' => 'boolean',
12916                ],
12917                'maxResults' => [
12918                  'location' => 'query',
12919                  'type' => 'integer',
12920                ],
12921                'orderBy' => [
12922                  'location' => 'query',
12923                  'type' => 'string',
12924                ],
12925                'pageToken' => [
12926                  'location' => 'query',
12927                  'type' => 'string',
12928                ],
12929                'returnPartialSuccess' => [
12930                  'location' => 'query',
12931                  'type' => 'boolean',
12932                ],
12933              ],
12934            ],'delete' => [
12935              'path' => 'projects/{project}/global/securityPolicies/{securityPolicy}',
12936              'httpMethod' => 'DELETE',
12937              'parameters' => [
12938                'project' => [
12939                  'location' => 'path',
12940                  'type' => 'string',
12941                  'required' => true,
12942                ],
12943                'securityPolicy' => [
12944                  'location' => 'path',
12945                  'type' => 'string',
12946                  'required' => true,
12947                ],
12948                'requestId' => [
12949                  'location' => 'query',
12950                  'type' => 'string',
12951                ],
12952              ],
12953            ],'get' => [
12954              'path' => 'projects/{project}/global/securityPolicies/{securityPolicy}',
12955              'httpMethod' => 'GET',
12956              'parameters' => [
12957                'project' => [
12958                  'location' => 'path',
12959                  'type' => 'string',
12960                  'required' => true,
12961                ],
12962                'securityPolicy' => [
12963                  'location' => 'path',
12964                  'type' => 'string',
12965                  'required' => true,
12966                ],
12967              ],
12968            ],'getRule' => [
12969              'path' => 'projects/{project}/global/securityPolicies/{securityPolicy}/getRule',
12970              'httpMethod' => 'GET',
12971              'parameters' => [
12972                'project' => [
12973                  'location' => 'path',
12974                  'type' => 'string',
12975                  'required' => true,
12976                ],
12977                'securityPolicy' => [
12978                  'location' => 'path',
12979                  'type' => 'string',
12980                  'required' => true,
12981                ],
12982                'priority' => [
12983                  'location' => 'query',
12984                  'type' => 'integer',
12985                ],
12986              ],
12987            ],'insert' => [
12988              'path' => 'projects/{project}/global/securityPolicies',
12989              'httpMethod' => 'POST',
12990              'parameters' => [
12991                'project' => [
12992                  'location' => 'path',
12993                  'type' => 'string',
12994                  'required' => true,
12995                ],
12996                'requestId' => [
12997                  'location' => 'query',
12998                  'type' => 'string',
12999                ],
13000              ],
13001            ],'list' => [
13002              'path' => 'projects/{project}/global/securityPolicies',
13003              'httpMethod' => 'GET',
13004              'parameters' => [
13005                'project' => [
13006                  'location' => 'path',
13007                  'type' => 'string',
13008                  'required' => true,
13009                ],
13010                'filter' => [
13011                  'location' => 'query',
13012                  'type' => 'string',
13013                ],
13014                'maxResults' => [
13015                  'location' => 'query',
13016                  'type' => 'integer',
13017                ],
13018                'orderBy' => [
13019                  'location' => 'query',
13020                  'type' => 'string',
13021                ],
13022                'pageToken' => [
13023                  'location' => 'query',
13024                  'type' => 'string',
13025                ],
13026                'returnPartialSuccess' => [
13027                  'location' => 'query',
13028                  'type' => 'boolean',
13029                ],
13030              ],
13031            ],'listPreconfiguredExpressionSets' => [
13032              'path' => 'projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets',
13033              'httpMethod' => 'GET',
13034              'parameters' => [
13035                'project' => [
13036                  'location' => 'path',
13037                  'type' => 'string',
13038                  'required' => true,
13039                ],
13040                'filter' => [
13041                  'location' => 'query',
13042                  'type' => 'string',
13043                ],
13044                'maxResults' => [
13045                  'location' => 'query',
13046                  'type' => 'integer',
13047                ],
13048                'orderBy' => [
13049                  'location' => 'query',
13050                  'type' => 'string',
13051                ],
13052                'pageToken' => [
13053                  'location' => 'query',
13054                  'type' => 'string',
13055                ],
13056                'returnPartialSuccess' => [
13057                  'location' => 'query',
13058                  'type' => 'boolean',
13059                ],
13060              ],
13061            ],'patch' => [
13062              'path' => 'projects/{project}/global/securityPolicies/{securityPolicy}',
13063              'httpMethod' => 'PATCH',
13064              'parameters' => [
13065                'project' => [
13066                  'location' => 'path',
13067                  'type' => 'string',
13068                  'required' => true,
13069                ],
13070                'securityPolicy' => [
13071                  'location' => 'path',
13072                  'type' => 'string',
13073                  'required' => true,
13074                ],
13075                'requestId' => [
13076                  'location' => 'query',
13077                  'type' => 'string',
13078                ],
13079              ],
13080            ],'patchRule' => [
13081              'path' => 'projects/{project}/global/securityPolicies/{securityPolicy}/patchRule',
13082              'httpMethod' => 'POST',
13083              'parameters' => [
13084                'project' => [
13085                  'location' => 'path',
13086                  'type' => 'string',
13087                  'required' => true,
13088                ],
13089                'securityPolicy' => [
13090                  'location' => 'path',
13091                  'type' => 'string',
13092                  'required' => true,
13093                ],
13094                'priority' => [
13095                  'location' => 'query',
13096                  'type' => 'integer',
13097                ],
13098              ],
13099            ],'removeRule' => [
13100              'path' => 'projects/{project}/global/securityPolicies/{securityPolicy}/removeRule',
13101              'httpMethod' => 'POST',
13102              'parameters' => [
13103                'project' => [
13104                  'location' => 'path',
13105                  'type' => 'string',
13106                  'required' => true,
13107                ],
13108                'securityPolicy' => [
13109                  'location' => 'path',
13110                  'type' => 'string',
13111                  'required' => true,
13112                ],
13113                'priority' => [
13114                  'location' => 'query',
13115                  'type' => 'integer',
13116                ],
13117              ],
13118            ],
13119          ]
13120        ]
13121    );
13122    $this->serviceAttachments = new Compute\Resource\ServiceAttachments(
13123        $this,
13124        $this->serviceName,
13125        'serviceAttachments',
13126        [
13127          'methods' => [
13128            'aggregatedList' => [
13129              'path' => 'projects/{project}/aggregated/serviceAttachments',
13130              'httpMethod' => 'GET',
13131              'parameters' => [
13132                'project' => [
13133                  'location' => 'path',
13134                  'type' => 'string',
13135                  'required' => true,
13136                ],
13137                'filter' => [
13138                  'location' => 'query',
13139                  'type' => 'string',
13140                ],
13141                'includeAllScopes' => [
13142                  'location' => 'query',
13143                  'type' => 'boolean',
13144                ],
13145                'maxResults' => [
13146                  'location' => 'query',
13147                  'type' => 'integer',
13148                ],
13149                'orderBy' => [
13150                  'location' => 'query',
13151                  'type' => 'string',
13152                ],
13153                'pageToken' => [
13154                  'location' => 'query',
13155                  'type' => 'string',
13156                ],
13157                'returnPartialSuccess' => [
13158                  'location' => 'query',
13159                  'type' => 'boolean',
13160                ],
13161              ],
13162            ],'delete' => [
13163              'path' => 'projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}',
13164              'httpMethod' => 'DELETE',
13165              'parameters' => [
13166                'project' => [
13167                  'location' => 'path',
13168                  'type' => 'string',
13169                  'required' => true,
13170                ],
13171                'region' => [
13172                  'location' => 'path',
13173                  'type' => 'string',
13174                  'required' => true,
13175                ],
13176                'serviceAttachment' => [
13177                  'location' => 'path',
13178                  'type' => 'string',
13179                  'required' => true,
13180                ],
13181                'requestId' => [
13182                  'location' => 'query',
13183                  'type' => 'string',
13184                ],
13185              ],
13186            ],'get' => [
13187              'path' => 'projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}',
13188              'httpMethod' => 'GET',
13189              'parameters' => [
13190                'project' => [
13191                  'location' => 'path',
13192                  'type' => 'string',
13193                  'required' => true,
13194                ],
13195                'region' => [
13196                  'location' => 'path',
13197                  'type' => 'string',
13198                  'required' => true,
13199                ],
13200                'serviceAttachment' => [
13201                  'location' => 'path',
13202                  'type' => 'string',
13203                  'required' => true,
13204                ],
13205              ],
13206            ],'getIamPolicy' => [
13207              'path' => 'projects/{project}/regions/{region}/serviceAttachments/{resource}/getIamPolicy',
13208              'httpMethod' => 'GET',
13209              'parameters' => [
13210                'project' => [
13211                  'location' => 'path',
13212                  'type' => 'string',
13213                  'required' => true,
13214                ],
13215                'region' => [
13216                  'location' => 'path',
13217                  'type' => 'string',
13218                  'required' => true,
13219                ],
13220                'resource' => [
13221                  'location' => 'path',
13222                  'type' => 'string',
13223                  'required' => true,
13224                ],
13225                'optionsRequestedPolicyVersion' => [
13226                  'location' => 'query',
13227                  'type' => 'integer',
13228                ],
13229              ],
13230            ],'insert' => [
13231              'path' => 'projects/{project}/regions/{region}/serviceAttachments',
13232              'httpMethod' => 'POST',
13233              'parameters' => [
13234                'project' => [
13235                  'location' => 'path',
13236                  'type' => 'string',
13237                  'required' => true,
13238                ],
13239                'region' => [
13240                  'location' => 'path',
13241                  'type' => 'string',
13242                  'required' => true,
13243                ],
13244                'requestId' => [
13245                  'location' => 'query',
13246                  'type' => 'string',
13247                ],
13248              ],
13249            ],'list' => [
13250              'path' => 'projects/{project}/regions/{region}/serviceAttachments',
13251              'httpMethod' => 'GET',
13252              'parameters' => [
13253                'project' => [
13254                  'location' => 'path',
13255                  'type' => 'string',
13256                  'required' => true,
13257                ],
13258                'region' => [
13259                  'location' => 'path',
13260                  'type' => 'string',
13261                  'required' => true,
13262                ],
13263                'filter' => [
13264                  'location' => 'query',
13265                  'type' => 'string',
13266                ],
13267                'maxResults' => [
13268                  'location' => 'query',
13269                  'type' => 'integer',
13270                ],
13271                'orderBy' => [
13272                  'location' => 'query',
13273                  'type' => 'string',
13274                ],
13275                'pageToken' => [
13276                  'location' => 'query',
13277                  'type' => 'string',
13278                ],
13279                'returnPartialSuccess' => [
13280                  'location' => 'query',
13281                  'type' => 'boolean',
13282                ],
13283              ],
13284            ],'patch' => [
13285              'path' => 'projects/{project}/regions/{region}/serviceAttachments/{serviceAttachment}',
13286              'httpMethod' => 'PATCH',
13287              'parameters' => [
13288                'project' => [
13289                  'location' => 'path',
13290                  'type' => 'string',
13291                  'required' => true,
13292                ],
13293                'region' => [
13294                  'location' => 'path',
13295                  'type' => 'string',
13296                  'required' => true,
13297                ],
13298                'serviceAttachment' => [
13299                  'location' => 'path',
13300                  'type' => 'string',
13301                  'required' => true,
13302                ],
13303                'requestId' => [
13304                  'location' => 'query',
13305                  'type' => 'string',
13306                ],
13307              ],
13308            ],'setIamPolicy' => [
13309              'path' => 'projects/{project}/regions/{region}/serviceAttachments/{resource}/setIamPolicy',
13310              'httpMethod' => 'POST',
13311              'parameters' => [
13312                'project' => [
13313                  'location' => 'path',
13314                  'type' => 'string',
13315                  'required' => true,
13316                ],
13317                'region' => [
13318                  'location' => 'path',
13319                  'type' => 'string',
13320                  'required' => true,
13321                ],
13322                'resource' => [
13323                  'location' => 'path',
13324                  'type' => 'string',
13325                  'required' => true,
13326                ],
13327              ],
13328            ],'testIamPermissions' => [
13329              'path' => 'projects/{project}/regions/{region}/serviceAttachments/{resource}/testIamPermissions',
13330              'httpMethod' => 'POST',
13331              'parameters' => [
13332                'project' => [
13333                  'location' => 'path',
13334                  'type' => 'string',
13335                  'required' => true,
13336                ],
13337                'region' => [
13338                  'location' => 'path',
13339                  'type' => 'string',
13340                  'required' => true,
13341                ],
13342                'resource' => [
13343                  'location' => 'path',
13344                  'type' => 'string',
13345                  'required' => true,
13346                ],
13347              ],
13348            ],
13349          ]
13350        ]
13351    );
13352    $this->snapshots = new Compute\Resource\Snapshots(
13353        $this,
13354        $this->serviceName,
13355        'snapshots',
13356        [
13357          'methods' => [
13358            'delete' => [
13359              'path' => 'projects/{project}/global/snapshots/{snapshot}',
13360              'httpMethod' => 'DELETE',
13361              'parameters' => [
13362                'project' => [
13363                  'location' => 'path',
13364                  'type' => 'string',
13365                  'required' => true,
13366                ],
13367                'snapshot' => [
13368                  'location' => 'path',
13369                  'type' => 'string',
13370                  'required' => true,
13371                ],
13372                'requestId' => [
13373                  'location' => 'query',
13374                  'type' => 'string',
13375                ],
13376              ],
13377            ],'get' => [
13378              'path' => 'projects/{project}/global/snapshots/{snapshot}',
13379              'httpMethod' => 'GET',
13380              'parameters' => [
13381                'project' => [
13382                  'location' => 'path',
13383                  'type' => 'string',
13384                  'required' => true,
13385                ],
13386                'snapshot' => [
13387                  'location' => 'path',
13388                  'type' => 'string',
13389                  'required' => true,
13390                ],
13391              ],
13392            ],'getIamPolicy' => [
13393              'path' => 'projects/{project}/global/snapshots/{resource}/getIamPolicy',
13394              'httpMethod' => 'GET',
13395              'parameters' => [
13396                'project' => [
13397                  'location' => 'path',
13398                  'type' => 'string',
13399                  'required' => true,
13400                ],
13401                'resource' => [
13402                  'location' => 'path',
13403                  'type' => 'string',
13404                  'required' => true,
13405                ],
13406                'optionsRequestedPolicyVersion' => [
13407                  'location' => 'query',
13408                  'type' => 'integer',
13409                ],
13410              ],
13411            ],'insert' => [
13412              'path' => 'projects/{project}/global/snapshots',
13413              'httpMethod' => 'POST',
13414              'parameters' => [
13415                'project' => [
13416                  'location' => 'path',
13417                  'type' => 'string',
13418                  'required' => true,
13419                ],
13420                'requestId' => [
13421                  'location' => 'query',
13422                  'type' => 'string',
13423                ],
13424              ],
13425            ],'list' => [
13426              'path' => 'projects/{project}/global/snapshots',
13427              'httpMethod' => 'GET',
13428              'parameters' => [
13429                'project' => [
13430                  'location' => 'path',
13431                  'type' => 'string',
13432                  'required' => true,
13433                ],
13434                'filter' => [
13435                  'location' => 'query',
13436                  'type' => 'string',
13437                ],
13438                'maxResults' => [
13439                  'location' => 'query',
13440                  'type' => 'integer',
13441                ],
13442                'orderBy' => [
13443                  'location' => 'query',
13444                  'type' => 'string',
13445                ],
13446                'pageToken' => [
13447                  'location' => 'query',
13448                  'type' => 'string',
13449                ],
13450                'returnPartialSuccess' => [
13451                  'location' => 'query',
13452                  'type' => 'boolean',
13453                ],
13454              ],
13455            ],'setIamPolicy' => [
13456              'path' => 'projects/{project}/global/snapshots/{resource}/setIamPolicy',
13457              'httpMethod' => 'POST',
13458              'parameters' => [
13459                'project' => [
13460                  'location' => 'path',
13461                  'type' => 'string',
13462                  'required' => true,
13463                ],
13464                'resource' => [
13465                  'location' => 'path',
13466                  'type' => 'string',
13467                  'required' => true,
13468                ],
13469              ],
13470            ],'setLabels' => [
13471              'path' => 'projects/{project}/global/snapshots/{resource}/setLabels',
13472              'httpMethod' => 'POST',
13473              'parameters' => [
13474                'project' => [
13475                  'location' => 'path',
13476                  'type' => 'string',
13477                  'required' => true,
13478                ],
13479                'resource' => [
13480                  'location' => 'path',
13481                  'type' => 'string',
13482                  'required' => true,
13483                ],
13484              ],
13485            ],'testIamPermissions' => [
13486              'path' => 'projects/{project}/global/snapshots/{resource}/testIamPermissions',
13487              'httpMethod' => 'POST',
13488              'parameters' => [
13489                'project' => [
13490                  'location' => 'path',
13491                  'type' => 'string',
13492                  'required' => true,
13493                ],
13494                'resource' => [
13495                  'location' => 'path',
13496                  'type' => 'string',
13497                  'required' => true,
13498                ],
13499              ],
13500            ],
13501          ]
13502        ]
13503    );
13504    $this->sslCertificates = new Compute\Resource\SslCertificates(
13505        $this,
13506        $this->serviceName,
13507        'sslCertificates',
13508        [
13509          'methods' => [
13510            'aggregatedList' => [
13511              'path' => 'projects/{project}/aggregated/sslCertificates',
13512              'httpMethod' => 'GET',
13513              'parameters' => [
13514                'project' => [
13515                  'location' => 'path',
13516                  'type' => 'string',
13517                  'required' => true,
13518                ],
13519                'filter' => [
13520                  'location' => 'query',
13521                  'type' => 'string',
13522                ],
13523                'includeAllScopes' => [
13524                  'location' => 'query',
13525                  'type' => 'boolean',
13526                ],
13527                'maxResults' => [
13528                  'location' => 'query',
13529                  'type' => 'integer',
13530                ],
13531                'orderBy' => [
13532                  'location' => 'query',
13533                  'type' => 'string',
13534                ],
13535                'pageToken' => [
13536                  'location' => 'query',
13537                  'type' => 'string',
13538                ],
13539                'returnPartialSuccess' => [
13540                  'location' => 'query',
13541                  'type' => 'boolean',
13542                ],
13543              ],
13544            ],'delete' => [
13545              'path' => 'projects/{project}/global/sslCertificates/{sslCertificate}',
13546              'httpMethod' => 'DELETE',
13547              'parameters' => [
13548                'project' => [
13549                  'location' => 'path',
13550                  'type' => 'string',
13551                  'required' => true,
13552                ],
13553                'sslCertificate' => [
13554                  'location' => 'path',
13555                  'type' => 'string',
13556                  'required' => true,
13557                ],
13558                'requestId' => [
13559                  'location' => 'query',
13560                  'type' => 'string',
13561                ],
13562              ],
13563            ],'get' => [
13564              'path' => 'projects/{project}/global/sslCertificates/{sslCertificate}',
13565              'httpMethod' => 'GET',
13566              'parameters' => [
13567                'project' => [
13568                  'location' => 'path',
13569                  'type' => 'string',
13570                  'required' => true,
13571                ],
13572                'sslCertificate' => [
13573                  'location' => 'path',
13574                  'type' => 'string',
13575                  'required' => true,
13576                ],
13577              ],
13578            ],'insert' => [
13579              'path' => 'projects/{project}/global/sslCertificates',
13580              'httpMethod' => 'POST',
13581              'parameters' => [
13582                'project' => [
13583                  'location' => 'path',
13584                  'type' => 'string',
13585                  'required' => true,
13586                ],
13587                'requestId' => [
13588                  'location' => 'query',
13589                  'type' => 'string',
13590                ],
13591              ],
13592            ],'list' => [
13593              'path' => 'projects/{project}/global/sslCertificates',
13594              'httpMethod' => 'GET',
13595              'parameters' => [
13596                'project' => [
13597                  'location' => 'path',
13598                  'type' => 'string',
13599                  'required' => true,
13600                ],
13601                'filter' => [
13602                  'location' => 'query',
13603                  'type' => 'string',
13604                ],
13605                'maxResults' => [
13606                  'location' => 'query',
13607                  'type' => 'integer',
13608                ],
13609                'orderBy' => [
13610                  'location' => 'query',
13611                  'type' => 'string',
13612                ],
13613                'pageToken' => [
13614                  'location' => 'query',
13615                  'type' => 'string',
13616                ],
13617                'returnPartialSuccess' => [
13618                  'location' => 'query',
13619                  'type' => 'boolean',
13620                ],
13621              ],
13622            ],
13623          ]
13624        ]
13625    );
13626    $this->sslPolicies = new Compute\Resource\SslPolicies(
13627        $this,
13628        $this->serviceName,
13629        'sslPolicies',
13630        [
13631          'methods' => [
13632            'delete' => [
13633              'path' => 'projects/{project}/global/sslPolicies/{sslPolicy}',
13634              'httpMethod' => 'DELETE',
13635              'parameters' => [
13636                'project' => [
13637                  'location' => 'path',
13638                  'type' => 'string',
13639                  'required' => true,
13640                ],
13641                'sslPolicy' => [
13642                  'location' => 'path',
13643                  'type' => 'string',
13644                  'required' => true,
13645                ],
13646                'requestId' => [
13647                  'location' => 'query',
13648                  'type' => 'string',
13649                ],
13650              ],
13651            ],'get' => [
13652              'path' => 'projects/{project}/global/sslPolicies/{sslPolicy}',
13653              'httpMethod' => 'GET',
13654              'parameters' => [
13655                'project' => [
13656                  'location' => 'path',
13657                  'type' => 'string',
13658                  'required' => true,
13659                ],
13660                'sslPolicy' => [
13661                  'location' => 'path',
13662                  'type' => 'string',
13663                  'required' => true,
13664                ],
13665              ],
13666            ],'insert' => [
13667              'path' => 'projects/{project}/global/sslPolicies',
13668              'httpMethod' => 'POST',
13669              'parameters' => [
13670                'project' => [
13671                  'location' => 'path',
13672                  'type' => 'string',
13673                  'required' => true,
13674                ],
13675                'requestId' => [
13676                  'location' => 'query',
13677                  'type' => 'string',
13678                ],
13679              ],
13680            ],'list' => [
13681              'path' => 'projects/{project}/global/sslPolicies',
13682              'httpMethod' => 'GET',
13683              'parameters' => [
13684                'project' => [
13685                  'location' => 'path',
13686                  'type' => 'string',
13687                  'required' => true,
13688                ],
13689                'filter' => [
13690                  'location' => 'query',
13691                  'type' => 'string',
13692                ],
13693                'maxResults' => [
13694                  'location' => 'query',
13695                  'type' => 'integer',
13696                ],
13697                'orderBy' => [
13698                  'location' => 'query',
13699                  'type' => 'string',
13700                ],
13701                'pageToken' => [
13702                  'location' => 'query',
13703                  'type' => 'string',
13704                ],
13705                'returnPartialSuccess' => [
13706                  'location' => 'query',
13707                  'type' => 'boolean',
13708                ],
13709              ],
13710            ],'listAvailableFeatures' => [
13711              'path' => 'projects/{project}/global/sslPolicies/listAvailableFeatures',
13712              'httpMethod' => 'GET',
13713              'parameters' => [
13714                'project' => [
13715                  'location' => 'path',
13716                  'type' => 'string',
13717                  'required' => true,
13718                ],
13719                'filter' => [
13720                  'location' => 'query',
13721                  'type' => 'string',
13722                ],
13723                'maxResults' => [
13724                  'location' => 'query',
13725                  'type' => 'integer',
13726                ],
13727                'orderBy' => [
13728                  'location' => 'query',
13729                  'type' => 'string',
13730                ],
13731                'pageToken' => [
13732                  'location' => 'query',
13733                  'type' => 'string',
13734                ],
13735                'returnPartialSuccess' => [
13736                  'location' => 'query',
13737                  'type' => 'boolean',
13738                ],
13739              ],
13740            ],'patch' => [
13741              'path' => 'projects/{project}/global/sslPolicies/{sslPolicy}',
13742              'httpMethod' => 'PATCH',
13743              'parameters' => [
13744                'project' => [
13745                  'location' => 'path',
13746                  'type' => 'string',
13747                  'required' => true,
13748                ],
13749                'sslPolicy' => [
13750                  'location' => 'path',
13751                  'type' => 'string',
13752                  'required' => true,
13753                ],
13754                'requestId' => [
13755                  'location' => 'query',
13756                  'type' => 'string',
13757                ],
13758              ],
13759            ],
13760          ]
13761        ]
13762    );
13763    $this->subnetworks = new Compute\Resource\Subnetworks(
13764        $this,
13765        $this->serviceName,
13766        'subnetworks',
13767        [
13768          'methods' => [
13769            'aggregatedList' => [
13770              'path' => 'projects/{project}/aggregated/subnetworks',
13771              'httpMethod' => 'GET',
13772              'parameters' => [
13773                'project' => [
13774                  'location' => 'path',
13775                  'type' => 'string',
13776                  'required' => true,
13777                ],
13778                'filter' => [
13779                  'location' => 'query',
13780                  'type' => 'string',
13781                ],
13782                'includeAllScopes' => [
13783                  'location' => 'query',
13784                  'type' => 'boolean',
13785                ],
13786                'maxResults' => [
13787                  'location' => 'query',
13788                  'type' => 'integer',
13789                ],
13790                'orderBy' => [
13791                  'location' => 'query',
13792                  'type' => 'string',
13793                ],
13794                'pageToken' => [
13795                  'location' => 'query',
13796                  'type' => 'string',
13797                ],
13798                'returnPartialSuccess' => [
13799                  'location' => 'query',
13800                  'type' => 'boolean',
13801                ],
13802              ],
13803            ],'delete' => [
13804              'path' => 'projects/{project}/regions/{region}/subnetworks/{subnetwork}',
13805              'httpMethod' => 'DELETE',
13806              'parameters' => [
13807                'project' => [
13808                  'location' => 'path',
13809                  'type' => 'string',
13810                  'required' => true,
13811                ],
13812                'region' => [
13813                  'location' => 'path',
13814                  'type' => 'string',
13815                  'required' => true,
13816                ],
13817                'subnetwork' => [
13818                  'location' => 'path',
13819                  'type' => 'string',
13820                  'required' => true,
13821                ],
13822                'requestId' => [
13823                  'location' => 'query',
13824                  'type' => 'string',
13825                ],
13826              ],
13827            ],'expandIpCidrRange' => [
13828              'path' => 'projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange',
13829              'httpMethod' => 'POST',
13830              'parameters' => [
13831                'project' => [
13832                  'location' => 'path',
13833                  'type' => 'string',
13834                  'required' => true,
13835                ],
13836                'region' => [
13837                  'location' => 'path',
13838                  'type' => 'string',
13839                  'required' => true,
13840                ],
13841                'subnetwork' => [
13842                  'location' => 'path',
13843                  'type' => 'string',
13844                  'required' => true,
13845                ],
13846                'requestId' => [
13847                  'location' => 'query',
13848                  'type' => 'string',
13849                ],
13850              ],
13851            ],'get' => [
13852              'path' => 'projects/{project}/regions/{region}/subnetworks/{subnetwork}',
13853              'httpMethod' => 'GET',
13854              'parameters' => [
13855                'project' => [
13856                  'location' => 'path',
13857                  'type' => 'string',
13858                  'required' => true,
13859                ],
13860                'region' => [
13861                  'location' => 'path',
13862                  'type' => 'string',
13863                  'required' => true,
13864                ],
13865                'subnetwork' => [
13866                  'location' => 'path',
13867                  'type' => 'string',
13868                  'required' => true,
13869                ],
13870              ],
13871            ],'getIamPolicy' => [
13872              'path' => 'projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy',
13873              'httpMethod' => 'GET',
13874              'parameters' => [
13875                'project' => [
13876                  'location' => 'path',
13877                  'type' => 'string',
13878                  'required' => true,
13879                ],
13880                'region' => [
13881                  'location' => 'path',
13882                  'type' => 'string',
13883                  'required' => true,
13884                ],
13885                'resource' => [
13886                  'location' => 'path',
13887                  'type' => 'string',
13888                  'required' => true,
13889                ],
13890                'optionsRequestedPolicyVersion' => [
13891                  'location' => 'query',
13892                  'type' => 'integer',
13893                ],
13894              ],
13895            ],'insert' => [
13896              'path' => 'projects/{project}/regions/{region}/subnetworks',
13897              'httpMethod' => 'POST',
13898              'parameters' => [
13899                'project' => [
13900                  'location' => 'path',
13901                  'type' => 'string',
13902                  'required' => true,
13903                ],
13904                'region' => [
13905                  'location' => 'path',
13906                  'type' => 'string',
13907                  'required' => true,
13908                ],
13909                'requestId' => [
13910                  'location' => 'query',
13911                  'type' => 'string',
13912                ],
13913              ],
13914            ],'list' => [
13915              'path' => 'projects/{project}/regions/{region}/subnetworks',
13916              'httpMethod' => 'GET',
13917              'parameters' => [
13918                'project' => [
13919                  'location' => 'path',
13920                  'type' => 'string',
13921                  'required' => true,
13922                ],
13923                'region' => [
13924                  'location' => 'path',
13925                  'type' => 'string',
13926                  'required' => true,
13927                ],
13928                'filter' => [
13929                  'location' => 'query',
13930                  'type' => 'string',
13931                ],
13932                'maxResults' => [
13933                  'location' => 'query',
13934                  'type' => 'integer',
13935                ],
13936                'orderBy' => [
13937                  'location' => 'query',
13938                  'type' => 'string',
13939                ],
13940                'pageToken' => [
13941                  'location' => 'query',
13942                  'type' => 'string',
13943                ],
13944                'returnPartialSuccess' => [
13945                  'location' => 'query',
13946                  'type' => 'boolean',
13947                ],
13948              ],
13949            ],'listUsable' => [
13950              'path' => 'projects/{project}/aggregated/subnetworks/listUsable',
13951              'httpMethod' => 'GET',
13952              'parameters' => [
13953                'project' => [
13954                  'location' => 'path',
13955                  'type' => 'string',
13956                  'required' => true,
13957                ],
13958                'filter' => [
13959                  'location' => 'query',
13960                  'type' => 'string',
13961                ],
13962                'maxResults' => [
13963                  'location' => 'query',
13964                  'type' => 'integer',
13965                ],
13966                'orderBy' => [
13967                  'location' => 'query',
13968                  'type' => 'string',
13969                ],
13970                'pageToken' => [
13971                  'location' => 'query',
13972                  'type' => 'string',
13973                ],
13974                'returnPartialSuccess' => [
13975                  'location' => 'query',
13976                  'type' => 'boolean',
13977                ],
13978              ],
13979            ],'patch' => [
13980              'path' => 'projects/{project}/regions/{region}/subnetworks/{subnetwork}',
13981              'httpMethod' => 'PATCH',
13982              'parameters' => [
13983                'project' => [
13984                  'location' => 'path',
13985                  'type' => 'string',
13986                  'required' => true,
13987                ],
13988                'region' => [
13989                  'location' => 'path',
13990                  'type' => 'string',
13991                  'required' => true,
13992                ],
13993                'subnetwork' => [
13994                  'location' => 'path',
13995                  'type' => 'string',
13996                  'required' => true,
13997                ],
13998                'drainTimeoutSeconds' => [
13999                  'location' => 'query',
14000                  'type' => 'integer',
14001                ],
14002                'requestId' => [
14003                  'location' => 'query',
14004                  'type' => 'string',
14005                ],
14006              ],
14007            ],'setIamPolicy' => [
14008              'path' => 'projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy',
14009              'httpMethod' => 'POST',
14010              'parameters' => [
14011                'project' => [
14012                  'location' => 'path',
14013                  'type' => 'string',
14014                  'required' => true,
14015                ],
14016                'region' => [
14017                  'location' => 'path',
14018                  'type' => 'string',
14019                  'required' => true,
14020                ],
14021                'resource' => [
14022                  'location' => 'path',
14023                  'type' => 'string',
14024                  'required' => true,
14025                ],
14026              ],
14027            ],'setPrivateIpGoogleAccess' => [
14028              'path' => 'projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess',
14029              'httpMethod' => 'POST',
14030              'parameters' => [
14031                'project' => [
14032                  'location' => 'path',
14033                  'type' => 'string',
14034                  'required' => true,
14035                ],
14036                'region' => [
14037                  'location' => 'path',
14038                  'type' => 'string',
14039                  'required' => true,
14040                ],
14041                'subnetwork' => [
14042                  'location' => 'path',
14043                  'type' => 'string',
14044                  'required' => true,
14045                ],
14046                'requestId' => [
14047                  'location' => 'query',
14048                  'type' => 'string',
14049                ],
14050              ],
14051            ],'testIamPermissions' => [
14052              'path' => 'projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions',
14053              'httpMethod' => 'POST',
14054              'parameters' => [
14055                'project' => [
14056                  'location' => 'path',
14057                  'type' => 'string',
14058                  'required' => true,
14059                ],
14060                'region' => [
14061                  'location' => 'path',
14062                  'type' => 'string',
14063                  'required' => true,
14064                ],
14065                'resource' => [
14066                  'location' => 'path',
14067                  'type' => 'string',
14068                  'required' => true,
14069                ],
14070              ],
14071            ],
14072          ]
14073        ]
14074    );
14075    $this->targetGrpcProxies = new Compute\Resource\TargetGrpcProxies(
14076        $this,
14077        $this->serviceName,
14078        'targetGrpcProxies',
14079        [
14080          'methods' => [
14081            'delete' => [
14082              'path' => 'projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}',
14083              'httpMethod' => 'DELETE',
14084              'parameters' => [
14085                'project' => [
14086                  'location' => 'path',
14087                  'type' => 'string',
14088                  'required' => true,
14089                ],
14090                'targetGrpcProxy' => [
14091                  'location' => 'path',
14092                  'type' => 'string',
14093                  'required' => true,
14094                ],
14095                'requestId' => [
14096                  'location' => 'query',
14097                  'type' => 'string',
14098                ],
14099              ],
14100            ],'get' => [
14101              'path' => 'projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}',
14102              'httpMethod' => 'GET',
14103              'parameters' => [
14104                'project' => [
14105                  'location' => 'path',
14106                  'type' => 'string',
14107                  'required' => true,
14108                ],
14109                'targetGrpcProxy' => [
14110                  'location' => 'path',
14111                  'type' => 'string',
14112                  'required' => true,
14113                ],
14114              ],
14115            ],'insert' => [
14116              'path' => 'projects/{project}/global/targetGrpcProxies',
14117              'httpMethod' => 'POST',
14118              'parameters' => [
14119                'project' => [
14120                  'location' => 'path',
14121                  'type' => 'string',
14122                  'required' => true,
14123                ],
14124                'requestId' => [
14125                  'location' => 'query',
14126                  'type' => 'string',
14127                ],
14128              ],
14129            ],'list' => [
14130              'path' => 'projects/{project}/global/targetGrpcProxies',
14131              'httpMethod' => 'GET',
14132              'parameters' => [
14133                'project' => [
14134                  'location' => 'path',
14135                  'type' => 'string',
14136                  'required' => true,
14137                ],
14138                'filter' => [
14139                  'location' => 'query',
14140                  'type' => 'string',
14141                ],
14142                'maxResults' => [
14143                  'location' => 'query',
14144                  'type' => 'integer',
14145                ],
14146                'orderBy' => [
14147                  'location' => 'query',
14148                  'type' => 'string',
14149                ],
14150                'pageToken' => [
14151                  'location' => 'query',
14152                  'type' => 'string',
14153                ],
14154                'returnPartialSuccess' => [
14155                  'location' => 'query',
14156                  'type' => 'boolean',
14157                ],
14158              ],
14159            ],'patch' => [
14160              'path' => 'projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}',
14161              'httpMethod' => 'PATCH',
14162              'parameters' => [
14163                'project' => [
14164                  'location' => 'path',
14165                  'type' => 'string',
14166                  'required' => true,
14167                ],
14168                'targetGrpcProxy' => [
14169                  'location' => 'path',
14170                  'type' => 'string',
14171                  'required' => true,
14172                ],
14173                'requestId' => [
14174                  'location' => 'query',
14175                  'type' => 'string',
14176                ],
14177              ],
14178            ],
14179          ]
14180        ]
14181    );
14182    $this->targetHttpProxies = new Compute\Resource\TargetHttpProxies(
14183        $this,
14184        $this->serviceName,
14185        'targetHttpProxies',
14186        [
14187          'methods' => [
14188            'aggregatedList' => [
14189              'path' => 'projects/{project}/aggregated/targetHttpProxies',
14190              'httpMethod' => 'GET',
14191              'parameters' => [
14192                'project' => [
14193                  'location' => 'path',
14194                  'type' => 'string',
14195                  'required' => true,
14196                ],
14197                'filter' => [
14198                  'location' => 'query',
14199                  'type' => 'string',
14200                ],
14201                'includeAllScopes' => [
14202                  'location' => 'query',
14203                  'type' => 'boolean',
14204                ],
14205                'maxResults' => [
14206                  'location' => 'query',
14207                  'type' => 'integer',
14208                ],
14209                'orderBy' => [
14210                  'location' => 'query',
14211                  'type' => 'string',
14212                ],
14213                'pageToken' => [
14214                  'location' => 'query',
14215                  'type' => 'string',
14216                ],
14217                'returnPartialSuccess' => [
14218                  'location' => 'query',
14219                  'type' => 'boolean',
14220                ],
14221              ],
14222            ],'delete' => [
14223              'path' => 'projects/{project}/global/targetHttpProxies/{targetHttpProxy}',
14224              'httpMethod' => 'DELETE',
14225              'parameters' => [
14226                'project' => [
14227                  'location' => 'path',
14228                  'type' => 'string',
14229                  'required' => true,
14230                ],
14231                'targetHttpProxy' => [
14232                  'location' => 'path',
14233                  'type' => 'string',
14234                  'required' => true,
14235                ],
14236                'requestId' => [
14237                  'location' => 'query',
14238                  'type' => 'string',
14239                ],
14240              ],
14241            ],'get' => [
14242              'path' => 'projects/{project}/global/targetHttpProxies/{targetHttpProxy}',
14243              'httpMethod' => 'GET',
14244              'parameters' => [
14245                'project' => [
14246                  'location' => 'path',
14247                  'type' => 'string',
14248                  'required' => true,
14249                ],
14250                'targetHttpProxy' => [
14251                  'location' => 'path',
14252                  'type' => 'string',
14253                  'required' => true,
14254                ],
14255              ],
14256            ],'insert' => [
14257              'path' => 'projects/{project}/global/targetHttpProxies',
14258              'httpMethod' => 'POST',
14259              'parameters' => [
14260                'project' => [
14261                  'location' => 'path',
14262                  'type' => 'string',
14263                  'required' => true,
14264                ],
14265                'requestId' => [
14266                  'location' => 'query',
14267                  'type' => 'string',
14268                ],
14269              ],
14270            ],'list' => [
14271              'path' => 'projects/{project}/global/targetHttpProxies',
14272              'httpMethod' => 'GET',
14273              'parameters' => [
14274                'project' => [
14275                  'location' => 'path',
14276                  'type' => 'string',
14277                  'required' => true,
14278                ],
14279                'filter' => [
14280                  'location' => 'query',
14281                  'type' => 'string',
14282                ],
14283                'maxResults' => [
14284                  'location' => 'query',
14285                  'type' => 'integer',
14286                ],
14287                'orderBy' => [
14288                  'location' => 'query',
14289                  'type' => 'string',
14290                ],
14291                'pageToken' => [
14292                  'location' => 'query',
14293                  'type' => 'string',
14294                ],
14295                'returnPartialSuccess' => [
14296                  'location' => 'query',
14297                  'type' => 'boolean',
14298                ],
14299              ],
14300            ],'patch' => [
14301              'path' => 'projects/{project}/global/targetHttpProxies/{targetHttpProxy}',
14302              'httpMethod' => 'PATCH',
14303              'parameters' => [
14304                'project' => [
14305                  'location' => 'path',
14306                  'type' => 'string',
14307                  'required' => true,
14308                ],
14309                'targetHttpProxy' => [
14310                  'location' => 'path',
14311                  'type' => 'string',
14312                  'required' => true,
14313                ],
14314                'requestId' => [
14315                  'location' => 'query',
14316                  'type' => 'string',
14317                ],
14318              ],
14319            ],'setUrlMap' => [
14320              'path' => 'projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap',
14321              'httpMethod' => 'POST',
14322              'parameters' => [
14323                'project' => [
14324                  'location' => 'path',
14325                  'type' => 'string',
14326                  'required' => true,
14327                ],
14328                'targetHttpProxy' => [
14329                  'location' => 'path',
14330                  'type' => 'string',
14331                  'required' => true,
14332                ],
14333                'requestId' => [
14334                  'location' => 'query',
14335                  'type' => 'string',
14336                ],
14337              ],
14338            ],
14339          ]
14340        ]
14341    );
14342    $this->targetHttpsProxies = new Compute\Resource\TargetHttpsProxies(
14343        $this,
14344        $this->serviceName,
14345        'targetHttpsProxies',
14346        [
14347          'methods' => [
14348            'aggregatedList' => [
14349              'path' => 'projects/{project}/aggregated/targetHttpsProxies',
14350              'httpMethod' => 'GET',
14351              'parameters' => [
14352                'project' => [
14353                  'location' => 'path',
14354                  'type' => 'string',
14355                  'required' => true,
14356                ],
14357                'filter' => [
14358                  'location' => 'query',
14359                  'type' => 'string',
14360                ],
14361                'includeAllScopes' => [
14362                  'location' => 'query',
14363                  'type' => 'boolean',
14364                ],
14365                'maxResults' => [
14366                  'location' => 'query',
14367                  'type' => 'integer',
14368                ],
14369                'orderBy' => [
14370                  'location' => 'query',
14371                  'type' => 'string',
14372                ],
14373                'pageToken' => [
14374                  'location' => 'query',
14375                  'type' => 'string',
14376                ],
14377                'returnPartialSuccess' => [
14378                  'location' => 'query',
14379                  'type' => 'boolean',
14380                ],
14381              ],
14382            ],'delete' => [
14383              'path' => 'projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}',
14384              'httpMethod' => 'DELETE',
14385              'parameters' => [
14386                'project' => [
14387                  'location' => 'path',
14388                  'type' => 'string',
14389                  'required' => true,
14390                ],
14391                'targetHttpsProxy' => [
14392                  'location' => 'path',
14393                  'type' => 'string',
14394                  'required' => true,
14395                ],
14396                'requestId' => [
14397                  'location' => 'query',
14398                  'type' => 'string',
14399                ],
14400              ],
14401            ],'get' => [
14402              'path' => 'projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}',
14403              'httpMethod' => 'GET',
14404              'parameters' => [
14405                'project' => [
14406                  'location' => 'path',
14407                  'type' => 'string',
14408                  'required' => true,
14409                ],
14410                'targetHttpsProxy' => [
14411                  'location' => 'path',
14412                  'type' => 'string',
14413                  'required' => true,
14414                ],
14415              ],
14416            ],'insert' => [
14417              'path' => 'projects/{project}/global/targetHttpsProxies',
14418              'httpMethod' => 'POST',
14419              'parameters' => [
14420                'project' => [
14421                  'location' => 'path',
14422                  'type' => 'string',
14423                  'required' => true,
14424                ],
14425                'requestId' => [
14426                  'location' => 'query',
14427                  'type' => 'string',
14428                ],
14429              ],
14430            ],'list' => [
14431              'path' => 'projects/{project}/global/targetHttpsProxies',
14432              'httpMethod' => 'GET',
14433              'parameters' => [
14434                'project' => [
14435                  'location' => 'path',
14436                  'type' => 'string',
14437                  'required' => true,
14438                ],
14439                'filter' => [
14440                  'location' => 'query',
14441                  'type' => 'string',
14442                ],
14443                'maxResults' => [
14444                  'location' => 'query',
14445                  'type' => 'integer',
14446                ],
14447                'orderBy' => [
14448                  'location' => 'query',
14449                  'type' => 'string',
14450                ],
14451                'pageToken' => [
14452                  'location' => 'query',
14453                  'type' => 'string',
14454                ],
14455                'returnPartialSuccess' => [
14456                  'location' => 'query',
14457                  'type' => 'boolean',
14458                ],
14459              ],
14460            ],'patch' => [
14461              'path' => 'projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}',
14462              'httpMethod' => 'PATCH',
14463              'parameters' => [
14464                'project' => [
14465                  'location' => 'path',
14466                  'type' => 'string',
14467                  'required' => true,
14468                ],
14469                'targetHttpsProxy' => [
14470                  'location' => 'path',
14471                  'type' => 'string',
14472                  'required' => true,
14473                ],
14474                'requestId' => [
14475                  'location' => 'query',
14476                  'type' => 'string',
14477                ],
14478              ],
14479            ],'setQuicOverride' => [
14480              'path' => 'projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride',
14481              'httpMethod' => 'POST',
14482              'parameters' => [
14483                'project' => [
14484                  'location' => 'path',
14485                  'type' => 'string',
14486                  'required' => true,
14487                ],
14488                'targetHttpsProxy' => [
14489                  'location' => 'path',
14490                  'type' => 'string',
14491                  'required' => true,
14492                ],
14493                'requestId' => [
14494                  'location' => 'query',
14495                  'type' => 'string',
14496                ],
14497              ],
14498            ],'setSslCertificates' => [
14499              'path' => 'projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates',
14500              'httpMethod' => 'POST',
14501              'parameters' => [
14502                'project' => [
14503                  'location' => 'path',
14504                  'type' => 'string',
14505                  'required' => true,
14506                ],
14507                'targetHttpsProxy' => [
14508                  'location' => 'path',
14509                  'type' => 'string',
14510                  'required' => true,
14511                ],
14512                'requestId' => [
14513                  'location' => 'query',
14514                  'type' => 'string',
14515                ],
14516              ],
14517            ],'setSslPolicy' => [
14518              'path' => 'projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy',
14519              'httpMethod' => 'POST',
14520              'parameters' => [
14521                'project' => [
14522                  'location' => 'path',
14523                  'type' => 'string',
14524                  'required' => true,
14525                ],
14526                'targetHttpsProxy' => [
14527                  'location' => 'path',
14528                  'type' => 'string',
14529                  'required' => true,
14530                ],
14531                'requestId' => [
14532                  'location' => 'query',
14533                  'type' => 'string',
14534                ],
14535              ],
14536            ],'setUrlMap' => [
14537              'path' => 'projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap',
14538              'httpMethod' => 'POST',
14539              'parameters' => [
14540                'project' => [
14541                  'location' => 'path',
14542                  'type' => 'string',
14543                  'required' => true,
14544                ],
14545                'targetHttpsProxy' => [
14546                  'location' => 'path',
14547                  'type' => 'string',
14548                  'required' => true,
14549                ],
14550                'requestId' => [
14551                  'location' => 'query',
14552                  'type' => 'string',
14553                ],
14554              ],
14555            ],
14556          ]
14557        ]
14558    );
14559    $this->targetInstances = new Compute\Resource\TargetInstances(
14560        $this,
14561        $this->serviceName,
14562        'targetInstances',
14563        [
14564          'methods' => [
14565            'aggregatedList' => [
14566              'path' => 'projects/{project}/aggregated/targetInstances',
14567              'httpMethod' => 'GET',
14568              'parameters' => [
14569                'project' => [
14570                  'location' => 'path',
14571                  'type' => 'string',
14572                  'required' => true,
14573                ],
14574                'filter' => [
14575                  'location' => 'query',
14576                  'type' => 'string',
14577                ],
14578                'includeAllScopes' => [
14579                  'location' => 'query',
14580                  'type' => 'boolean',
14581                ],
14582                'maxResults' => [
14583                  'location' => 'query',
14584                  'type' => 'integer',
14585                ],
14586                'orderBy' => [
14587                  'location' => 'query',
14588                  'type' => 'string',
14589                ],
14590                'pageToken' => [
14591                  'location' => 'query',
14592                  'type' => 'string',
14593                ],
14594                'returnPartialSuccess' => [
14595                  'location' => 'query',
14596                  'type' => 'boolean',
14597                ],
14598              ],
14599            ],'delete' => [
14600              'path' => 'projects/{project}/zones/{zone}/targetInstances/{targetInstance}',
14601              'httpMethod' => 'DELETE',
14602              'parameters' => [
14603                'project' => [
14604                  'location' => 'path',
14605                  'type' => 'string',
14606                  'required' => true,
14607                ],
14608                'zone' => [
14609                  'location' => 'path',
14610                  'type' => 'string',
14611                  'required' => true,
14612                ],
14613                'targetInstance' => [
14614                  'location' => 'path',
14615                  'type' => 'string',
14616                  'required' => true,
14617                ],
14618                'requestId' => [
14619                  'location' => 'query',
14620                  'type' => 'string',
14621                ],
14622              ],
14623            ],'get' => [
14624              'path' => 'projects/{project}/zones/{zone}/targetInstances/{targetInstance}',
14625              'httpMethod' => 'GET',
14626              'parameters' => [
14627                'project' => [
14628                  'location' => 'path',
14629                  'type' => 'string',
14630                  'required' => true,
14631                ],
14632                'zone' => [
14633                  'location' => 'path',
14634                  'type' => 'string',
14635                  'required' => true,
14636                ],
14637                'targetInstance' => [
14638                  'location' => 'path',
14639                  'type' => 'string',
14640                  'required' => true,
14641                ],
14642              ],
14643            ],'insert' => [
14644              'path' => 'projects/{project}/zones/{zone}/targetInstances',
14645              'httpMethod' => 'POST',
14646              'parameters' => [
14647                'project' => [
14648                  'location' => 'path',
14649                  'type' => 'string',
14650                  'required' => true,
14651                ],
14652                'zone' => [
14653                  'location' => 'path',
14654                  'type' => 'string',
14655                  'required' => true,
14656                ],
14657                'requestId' => [
14658                  'location' => 'query',
14659                  'type' => 'string',
14660                ],
14661              ],
14662            ],'list' => [
14663              'path' => 'projects/{project}/zones/{zone}/targetInstances',
14664              'httpMethod' => 'GET',
14665              'parameters' => [
14666                'project' => [
14667                  'location' => 'path',
14668                  'type' => 'string',
14669                  'required' => true,
14670                ],
14671                'zone' => [
14672                  'location' => 'path',
14673                  'type' => 'string',
14674                  'required' => true,
14675                ],
14676                'filter' => [
14677                  'location' => 'query',
14678                  'type' => 'string',
14679                ],
14680                'maxResults' => [
14681                  'location' => 'query',
14682                  'type' => 'integer',
14683                ],
14684                'orderBy' => [
14685                  'location' => 'query',
14686                  'type' => 'string',
14687                ],
14688                'pageToken' => [
14689                  'location' => 'query',
14690                  'type' => 'string',
14691                ],
14692                'returnPartialSuccess' => [
14693                  'location' => 'query',
14694                  'type' => 'boolean',
14695                ],
14696              ],
14697            ],
14698          ]
14699        ]
14700    );
14701    $this->targetPools = new Compute\Resource\TargetPools(
14702        $this,
14703        $this->serviceName,
14704        'targetPools',
14705        [
14706          'methods' => [
14707            'addHealthCheck' => [
14708              'path' => 'projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck',
14709              'httpMethod' => 'POST',
14710              'parameters' => [
14711                'project' => [
14712                  'location' => 'path',
14713                  'type' => 'string',
14714                  'required' => true,
14715                ],
14716                'region' => [
14717                  'location' => 'path',
14718                  'type' => 'string',
14719                  'required' => true,
14720                ],
14721                'targetPool' => [
14722                  'location' => 'path',
14723                  'type' => 'string',
14724                  'required' => true,
14725                ],
14726                'requestId' => [
14727                  'location' => 'query',
14728                  'type' => 'string',
14729                ],
14730              ],
14731            ],'addInstance' => [
14732              'path' => 'projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance',
14733              'httpMethod' => 'POST',
14734              'parameters' => [
14735                'project' => [
14736                  'location' => 'path',
14737                  'type' => 'string',
14738                  'required' => true,
14739                ],
14740                'region' => [
14741                  'location' => 'path',
14742                  'type' => 'string',
14743                  'required' => true,
14744                ],
14745                'targetPool' => [
14746                  'location' => 'path',
14747                  'type' => 'string',
14748                  'required' => true,
14749                ],
14750                'requestId' => [
14751                  'location' => 'query',
14752                  'type' => 'string',
14753                ],
14754              ],
14755            ],'aggregatedList' => [
14756              'path' => 'projects/{project}/aggregated/targetPools',
14757              'httpMethod' => 'GET',
14758              'parameters' => [
14759                'project' => [
14760                  'location' => 'path',
14761                  'type' => 'string',
14762                  'required' => true,
14763                ],
14764                'filter' => [
14765                  'location' => 'query',
14766                  'type' => 'string',
14767                ],
14768                'includeAllScopes' => [
14769                  'location' => 'query',
14770                  'type' => 'boolean',
14771                ],
14772                'maxResults' => [
14773                  'location' => 'query',
14774                  'type' => 'integer',
14775                ],
14776                'orderBy' => [
14777                  'location' => 'query',
14778                  'type' => 'string',
14779                ],
14780                'pageToken' => [
14781                  'location' => 'query',
14782                  'type' => 'string',
14783                ],
14784                'returnPartialSuccess' => [
14785                  'location' => 'query',
14786                  'type' => 'boolean',
14787                ],
14788              ],
14789            ],'delete' => [
14790              'path' => 'projects/{project}/regions/{region}/targetPools/{targetPool}',
14791              'httpMethod' => 'DELETE',
14792              'parameters' => [
14793                'project' => [
14794                  'location' => 'path',
14795                  'type' => 'string',
14796                  'required' => true,
14797                ],
14798                'region' => [
14799                  'location' => 'path',
14800                  'type' => 'string',
14801                  'required' => true,
14802                ],
14803                'targetPool' => [
14804                  'location' => 'path',
14805                  'type' => 'string',
14806                  'required' => true,
14807                ],
14808                'requestId' => [
14809                  'location' => 'query',
14810                  'type' => 'string',
14811                ],
14812              ],
14813            ],'get' => [
14814              'path' => 'projects/{project}/regions/{region}/targetPools/{targetPool}',
14815              'httpMethod' => 'GET',
14816              'parameters' => [
14817                'project' => [
14818                  'location' => 'path',
14819                  'type' => 'string',
14820                  'required' => true,
14821                ],
14822                'region' => [
14823                  'location' => 'path',
14824                  'type' => 'string',
14825                  'required' => true,
14826                ],
14827                'targetPool' => [
14828                  'location' => 'path',
14829                  'type' => 'string',
14830                  'required' => true,
14831                ],
14832              ],
14833            ],'getHealth' => [
14834              'path' => 'projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth',
14835              'httpMethod' => 'POST',
14836              'parameters' => [
14837                'project' => [
14838                  'location' => 'path',
14839                  'type' => 'string',
14840                  'required' => true,
14841                ],
14842                'region' => [
14843                  'location' => 'path',
14844                  'type' => 'string',
14845                  'required' => true,
14846                ],
14847                'targetPool' => [
14848                  'location' => 'path',
14849                  'type' => 'string',
14850                  'required' => true,
14851                ],
14852              ],
14853            ],'insert' => [
14854              'path' => 'projects/{project}/regions/{region}/targetPools',
14855              'httpMethod' => 'POST',
14856              'parameters' => [
14857                'project' => [
14858                  'location' => 'path',
14859                  'type' => 'string',
14860                  'required' => true,
14861                ],
14862                'region' => [
14863                  'location' => 'path',
14864                  'type' => 'string',
14865                  'required' => true,
14866                ],
14867                'requestId' => [
14868                  'location' => 'query',
14869                  'type' => 'string',
14870                ],
14871              ],
14872            ],'list' => [
14873              'path' => 'projects/{project}/regions/{region}/targetPools',
14874              'httpMethod' => 'GET',
14875              'parameters' => [
14876                'project' => [
14877                  'location' => 'path',
14878                  'type' => 'string',
14879                  'required' => true,
14880                ],
14881                'region' => [
14882                  'location' => 'path',
14883                  'type' => 'string',
14884                  'required' => true,
14885                ],
14886                'filter' => [
14887                  'location' => 'query',
14888                  'type' => 'string',
14889                ],
14890                'maxResults' => [
14891                  'location' => 'query',
14892                  'type' => 'integer',
14893                ],
14894                'orderBy' => [
14895                  'location' => 'query',
14896                  'type' => 'string',
14897                ],
14898                'pageToken' => [
14899                  'location' => 'query',
14900                  'type' => 'string',
14901                ],
14902                'returnPartialSuccess' => [
14903                  'location' => 'query',
14904                  'type' => 'boolean',
14905                ],
14906              ],
14907            ],'removeHealthCheck' => [
14908              'path' => 'projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck',
14909              'httpMethod' => 'POST',
14910              'parameters' => [
14911                'project' => [
14912                  'location' => 'path',
14913                  'type' => 'string',
14914                  'required' => true,
14915                ],
14916                'region' => [
14917                  'location' => 'path',
14918                  'type' => 'string',
14919                  'required' => true,
14920                ],
14921                'targetPool' => [
14922                  'location' => 'path',
14923                  'type' => 'string',
14924                  'required' => true,
14925                ],
14926                'requestId' => [
14927                  'location' => 'query',
14928                  'type' => 'string',
14929                ],
14930              ],
14931            ],'removeInstance' => [
14932              'path' => 'projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance',
14933              'httpMethod' => 'POST',
14934              'parameters' => [
14935                'project' => [
14936                  'location' => 'path',
14937                  'type' => 'string',
14938                  'required' => true,
14939                ],
14940                'region' => [
14941                  'location' => 'path',
14942                  'type' => 'string',
14943                  'required' => true,
14944                ],
14945                'targetPool' => [
14946                  'location' => 'path',
14947                  'type' => 'string',
14948                  'required' => true,
14949                ],
14950                'requestId' => [
14951                  'location' => 'query',
14952                  'type' => 'string',
14953                ],
14954              ],
14955            ],'setBackup' => [
14956              'path' => 'projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup',
14957              'httpMethod' => 'POST',
14958              'parameters' => [
14959                'project' => [
14960                  'location' => 'path',
14961                  'type' => 'string',
14962                  'required' => true,
14963                ],
14964                'region' => [
14965                  'location' => 'path',
14966                  'type' => 'string',
14967                  'required' => true,
14968                ],
14969                'targetPool' => [
14970                  'location' => 'path',
14971                  'type' => 'string',
14972                  'required' => true,
14973                ],
14974                'failoverRatio' => [
14975                  'location' => 'query',
14976                  'type' => 'number',
14977                ],
14978                'requestId' => [
14979                  'location' => 'query',
14980                  'type' => 'string',
14981                ],
14982              ],
14983            ],
14984          ]
14985        ]
14986    );
14987    $this->targetSslProxies = new Compute\Resource\TargetSslProxies(
14988        $this,
14989        $this->serviceName,
14990        'targetSslProxies',
14991        [
14992          'methods' => [
14993            'delete' => [
14994              'path' => 'projects/{project}/global/targetSslProxies/{targetSslProxy}',
14995              'httpMethod' => 'DELETE',
14996              'parameters' => [
14997                'project' => [
14998                  'location' => 'path',
14999                  'type' => 'string',
15000                  'required' => true,
15001                ],
15002                'targetSslProxy' => [
15003                  'location' => 'path',
15004                  'type' => 'string',
15005                  'required' => true,
15006                ],
15007                'requestId' => [
15008                  'location' => 'query',
15009                  'type' => 'string',
15010                ],
15011              ],
15012            ],'get' => [
15013              'path' => 'projects/{project}/global/targetSslProxies/{targetSslProxy}',
15014              'httpMethod' => 'GET',
15015              'parameters' => [
15016                'project' => [
15017                  'location' => 'path',
15018                  'type' => 'string',
15019                  'required' => true,
15020                ],
15021                'targetSslProxy' => [
15022                  'location' => 'path',
15023                  'type' => 'string',
15024                  'required' => true,
15025                ],
15026              ],
15027            ],'insert' => [
15028              'path' => 'projects/{project}/global/targetSslProxies',
15029              'httpMethod' => 'POST',
15030              'parameters' => [
15031                'project' => [
15032                  'location' => 'path',
15033                  'type' => 'string',
15034                  'required' => true,
15035                ],
15036                'requestId' => [
15037                  'location' => 'query',
15038                  'type' => 'string',
15039                ],
15040              ],
15041            ],'list' => [
15042              'path' => 'projects/{project}/global/targetSslProxies',
15043              'httpMethod' => 'GET',
15044              'parameters' => [
15045                'project' => [
15046                  'location' => 'path',
15047                  'type' => 'string',
15048                  'required' => true,
15049                ],
15050                'filter' => [
15051                  'location' => 'query',
15052                  'type' => 'string',
15053                ],
15054                'maxResults' => [
15055                  'location' => 'query',
15056                  'type' => 'integer',
15057                ],
15058                'orderBy' => [
15059                  'location' => 'query',
15060                  'type' => 'string',
15061                ],
15062                'pageToken' => [
15063                  'location' => 'query',
15064                  'type' => 'string',
15065                ],
15066                'returnPartialSuccess' => [
15067                  'location' => 'query',
15068                  'type' => 'boolean',
15069                ],
15070              ],
15071            ],'setBackendService' => [
15072              'path' => 'projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService',
15073              'httpMethod' => 'POST',
15074              'parameters' => [
15075                'project' => [
15076                  'location' => 'path',
15077                  'type' => 'string',
15078                  'required' => true,
15079                ],
15080                'targetSslProxy' => [
15081                  'location' => 'path',
15082                  'type' => 'string',
15083                  'required' => true,
15084                ],
15085                'requestId' => [
15086                  'location' => 'query',
15087                  'type' => 'string',
15088                ],
15089              ],
15090            ],'setProxyHeader' => [
15091              'path' => 'projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader',
15092              'httpMethod' => 'POST',
15093              'parameters' => [
15094                'project' => [
15095                  'location' => 'path',
15096                  'type' => 'string',
15097                  'required' => true,
15098                ],
15099                'targetSslProxy' => [
15100                  'location' => 'path',
15101                  'type' => 'string',
15102                  'required' => true,
15103                ],
15104                'requestId' => [
15105                  'location' => 'query',
15106                  'type' => 'string',
15107                ],
15108              ],
15109            ],'setSslCertificates' => [
15110              'path' => 'projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates',
15111              'httpMethod' => 'POST',
15112              'parameters' => [
15113                'project' => [
15114                  'location' => 'path',
15115                  'type' => 'string',
15116                  'required' => true,
15117                ],
15118                'targetSslProxy' => [
15119                  'location' => 'path',
15120                  'type' => 'string',
15121                  'required' => true,
15122                ],
15123                'requestId' => [
15124                  'location' => 'query',
15125                  'type' => 'string',
15126                ],
15127              ],
15128            ],'setSslPolicy' => [
15129              'path' => 'projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy',
15130              'httpMethod' => 'POST',
15131              'parameters' => [
15132                'project' => [
15133                  'location' => 'path',
15134                  'type' => 'string',
15135                  'required' => true,
15136                ],
15137                'targetSslProxy' => [
15138                  'location' => 'path',
15139                  'type' => 'string',
15140                  'required' => true,
15141                ],
15142                'requestId' => [
15143                  'location' => 'query',
15144                  'type' => 'string',
15145                ],
15146              ],
15147            ],
15148          ]
15149        ]
15150    );
15151    $this->targetTcpProxies = new Compute\Resource\TargetTcpProxies(
15152        $this,
15153        $this->serviceName,
15154        'targetTcpProxies',
15155        [
15156          'methods' => [
15157            'delete' => [
15158              'path' => 'projects/{project}/global/targetTcpProxies/{targetTcpProxy}',
15159              'httpMethod' => 'DELETE',
15160              'parameters' => [
15161                'project' => [
15162                  'location' => 'path',
15163                  'type' => 'string',
15164                  'required' => true,
15165                ],
15166                'targetTcpProxy' => [
15167                  'location' => 'path',
15168                  'type' => 'string',
15169                  'required' => true,
15170                ],
15171                'requestId' => [
15172                  'location' => 'query',
15173                  'type' => 'string',
15174                ],
15175              ],
15176            ],'get' => [
15177              'path' => 'projects/{project}/global/targetTcpProxies/{targetTcpProxy}',
15178              'httpMethod' => 'GET',
15179              'parameters' => [
15180                'project' => [
15181                  'location' => 'path',
15182                  'type' => 'string',
15183                  'required' => true,
15184                ],
15185                'targetTcpProxy' => [
15186                  'location' => 'path',
15187                  'type' => 'string',
15188                  'required' => true,
15189                ],
15190              ],
15191            ],'insert' => [
15192              'path' => 'projects/{project}/global/targetTcpProxies',
15193              'httpMethod' => 'POST',
15194              'parameters' => [
15195                'project' => [
15196                  'location' => 'path',
15197                  'type' => 'string',
15198                  'required' => true,
15199                ],
15200                'requestId' => [
15201                  'location' => 'query',
15202                  'type' => 'string',
15203                ],
15204              ],
15205            ],'list' => [
15206              'path' => 'projects/{project}/global/targetTcpProxies',
15207              'httpMethod' => 'GET',
15208              'parameters' => [
15209                'project' => [
15210                  'location' => 'path',
15211                  'type' => 'string',
15212                  'required' => true,
15213                ],
15214                'filter' => [
15215                  'location' => 'query',
15216                  'type' => 'string',
15217                ],
15218                'maxResults' => [
15219                  'location' => 'query',
15220                  'type' => 'integer',
15221                ],
15222                'orderBy' => [
15223                  'location' => 'query',
15224                  'type' => 'string',
15225                ],
15226                'pageToken' => [
15227                  'location' => 'query',
15228                  'type' => 'string',
15229                ],
15230                'returnPartialSuccess' => [
15231                  'location' => 'query',
15232                  'type' => 'boolean',
15233                ],
15234              ],
15235            ],'setBackendService' => [
15236              'path' => 'projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService',
15237              'httpMethod' => 'POST',
15238              'parameters' => [
15239                'project' => [
15240                  'location' => 'path',
15241                  'type' => 'string',
15242                  'required' => true,
15243                ],
15244                'targetTcpProxy' => [
15245                  'location' => 'path',
15246                  'type' => 'string',
15247                  'required' => true,
15248                ],
15249                'requestId' => [
15250                  'location' => 'query',
15251                  'type' => 'string',
15252                ],
15253              ],
15254            ],'setProxyHeader' => [
15255              'path' => 'projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader',
15256              'httpMethod' => 'POST',
15257              'parameters' => [
15258                'project' => [
15259                  'location' => 'path',
15260                  'type' => 'string',
15261                  'required' => true,
15262                ],
15263                'targetTcpProxy' => [
15264                  'location' => 'path',
15265                  'type' => 'string',
15266                  'required' => true,
15267                ],
15268                'requestId' => [
15269                  'location' => 'query',
15270                  'type' => 'string',
15271                ],
15272              ],
15273            ],
15274          ]
15275        ]
15276    );
15277    $this->targetVpnGateways = new Compute\Resource\TargetVpnGateways(
15278        $this,
15279        $this->serviceName,
15280        'targetVpnGateways',
15281        [
15282          'methods' => [
15283            'aggregatedList' => [
15284              'path' => 'projects/{project}/aggregated/targetVpnGateways',
15285              'httpMethod' => 'GET',
15286              'parameters' => [
15287                'project' => [
15288                  'location' => 'path',
15289                  'type' => 'string',
15290                  'required' => true,
15291                ],
15292                'filter' => [
15293                  'location' => 'query',
15294                  'type' => 'string',
15295                ],
15296                'includeAllScopes' => [
15297                  'location' => 'query',
15298                  'type' => 'boolean',
15299                ],
15300                'maxResults' => [
15301                  'location' => 'query',
15302                  'type' => 'integer',
15303                ],
15304                'orderBy' => [
15305                  'location' => 'query',
15306                  'type' => 'string',
15307                ],
15308                'pageToken' => [
15309                  'location' => 'query',
15310                  'type' => 'string',
15311                ],
15312                'returnPartialSuccess' => [
15313                  'location' => 'query',
15314                  'type' => 'boolean',
15315                ],
15316              ],
15317            ],'delete' => [
15318              'path' => 'projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}',
15319              'httpMethod' => 'DELETE',
15320              'parameters' => [
15321                'project' => [
15322                  'location' => 'path',
15323                  'type' => 'string',
15324                  'required' => true,
15325                ],
15326                'region' => [
15327                  'location' => 'path',
15328                  'type' => 'string',
15329                  'required' => true,
15330                ],
15331                'targetVpnGateway' => [
15332                  'location' => 'path',
15333                  'type' => 'string',
15334                  'required' => true,
15335                ],
15336                'requestId' => [
15337                  'location' => 'query',
15338                  'type' => 'string',
15339                ],
15340              ],
15341            ],'get' => [
15342              'path' => 'projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}',
15343              'httpMethod' => 'GET',
15344              'parameters' => [
15345                'project' => [
15346                  'location' => 'path',
15347                  'type' => 'string',
15348                  'required' => true,
15349                ],
15350                'region' => [
15351                  'location' => 'path',
15352                  'type' => 'string',
15353                  'required' => true,
15354                ],
15355                'targetVpnGateway' => [
15356                  'location' => 'path',
15357                  'type' => 'string',
15358                  'required' => true,
15359                ],
15360              ],
15361            ],'insert' => [
15362              'path' => 'projects/{project}/regions/{region}/targetVpnGateways',
15363              'httpMethod' => 'POST',
15364              'parameters' => [
15365                'project' => [
15366                  'location' => 'path',
15367                  'type' => 'string',
15368                  'required' => true,
15369                ],
15370                'region' => [
15371                  'location' => 'path',
15372                  'type' => 'string',
15373                  'required' => true,
15374                ],
15375                'requestId' => [
15376                  'location' => 'query',
15377                  'type' => 'string',
15378                ],
15379              ],
15380            ],'list' => [
15381              'path' => 'projects/{project}/regions/{region}/targetVpnGateways',
15382              'httpMethod' => 'GET',
15383              'parameters' => [
15384                'project' => [
15385                  'location' => 'path',
15386                  'type' => 'string',
15387                  'required' => true,
15388                ],
15389                'region' => [
15390                  'location' => 'path',
15391                  'type' => 'string',
15392                  'required' => true,
15393                ],
15394                'filter' => [
15395                  'location' => 'query',
15396                  'type' => 'string',
15397                ],
15398                'maxResults' => [
15399                  'location' => 'query',
15400                  'type' => 'integer',
15401                ],
15402                'orderBy' => [
15403                  'location' => 'query',
15404                  'type' => 'string',
15405                ],
15406                'pageToken' => [
15407                  'location' => 'query',
15408                  'type' => 'string',
15409                ],
15410                'returnPartialSuccess' => [
15411                  'location' => 'query',
15412                  'type' => 'boolean',
15413                ],
15414              ],
15415            ],
15416          ]
15417        ]
15418    );
15419    $this->urlMaps = new Compute\Resource\UrlMaps(
15420        $this,
15421        $this->serviceName,
15422        'urlMaps',
15423        [
15424          'methods' => [
15425            'aggregatedList' => [
15426              'path' => 'projects/{project}/aggregated/urlMaps',
15427              'httpMethod' => 'GET',
15428              'parameters' => [
15429                'project' => [
15430                  'location' => 'path',
15431                  'type' => 'string',
15432                  'required' => true,
15433                ],
15434                'filter' => [
15435                  'location' => 'query',
15436                  'type' => 'string',
15437                ],
15438                'includeAllScopes' => [
15439                  'location' => 'query',
15440                  'type' => 'boolean',
15441                ],
15442                'maxResults' => [
15443                  'location' => 'query',
15444                  'type' => 'integer',
15445                ],
15446                'orderBy' => [
15447                  'location' => 'query',
15448                  'type' => 'string',
15449                ],
15450                'pageToken' => [
15451                  'location' => 'query',
15452                  'type' => 'string',
15453                ],
15454                'returnPartialSuccess' => [
15455                  'location' => 'query',
15456                  'type' => 'boolean',
15457                ],
15458              ],
15459            ],'delete' => [
15460              'path' => 'projects/{project}/global/urlMaps/{urlMap}',
15461              'httpMethod' => 'DELETE',
15462              'parameters' => [
15463                'project' => [
15464                  'location' => 'path',
15465                  'type' => 'string',
15466                  'required' => true,
15467                ],
15468                'urlMap' => [
15469                  'location' => 'path',
15470                  'type' => 'string',
15471                  'required' => true,
15472                ],
15473                'requestId' => [
15474                  'location' => 'query',
15475                  'type' => 'string',
15476                ],
15477              ],
15478            ],'get' => [
15479              'path' => 'projects/{project}/global/urlMaps/{urlMap}',
15480              'httpMethod' => 'GET',
15481              'parameters' => [
15482                'project' => [
15483                  'location' => 'path',
15484                  'type' => 'string',
15485                  'required' => true,
15486                ],
15487                'urlMap' => [
15488                  'location' => 'path',
15489                  'type' => 'string',
15490                  'required' => true,
15491                ],
15492              ],
15493            ],'insert' => [
15494              'path' => 'projects/{project}/global/urlMaps',
15495              'httpMethod' => 'POST',
15496              'parameters' => [
15497                'project' => [
15498                  'location' => 'path',
15499                  'type' => 'string',
15500                  'required' => true,
15501                ],
15502                'requestId' => [
15503                  'location' => 'query',
15504                  'type' => 'string',
15505                ],
15506              ],
15507            ],'invalidateCache' => [
15508              'path' => 'projects/{project}/global/urlMaps/{urlMap}/invalidateCache',
15509              'httpMethod' => 'POST',
15510              'parameters' => [
15511                'project' => [
15512                  'location' => 'path',
15513                  'type' => 'string',
15514                  'required' => true,
15515                ],
15516                'urlMap' => [
15517                  'location' => 'path',
15518                  'type' => 'string',
15519                  'required' => true,
15520                ],
15521                'requestId' => [
15522                  'location' => 'query',
15523                  'type' => 'string',
15524                ],
15525              ],
15526            ],'list' => [
15527              'path' => 'projects/{project}/global/urlMaps',
15528              'httpMethod' => 'GET',
15529              'parameters' => [
15530                'project' => [
15531                  'location' => 'path',
15532                  'type' => 'string',
15533                  'required' => true,
15534                ],
15535                'filter' => [
15536                  'location' => 'query',
15537                  'type' => 'string',
15538                ],
15539                'maxResults' => [
15540                  'location' => 'query',
15541                  'type' => 'integer',
15542                ],
15543                'orderBy' => [
15544                  'location' => 'query',
15545                  'type' => 'string',
15546                ],
15547                'pageToken' => [
15548                  'location' => 'query',
15549                  'type' => 'string',
15550                ],
15551                'returnPartialSuccess' => [
15552                  'location' => 'query',
15553                  'type' => 'boolean',
15554                ],
15555              ],
15556            ],'patch' => [
15557              'path' => 'projects/{project}/global/urlMaps/{urlMap}',
15558              'httpMethod' => 'PATCH',
15559              'parameters' => [
15560                'project' => [
15561                  'location' => 'path',
15562                  'type' => 'string',
15563                  'required' => true,
15564                ],
15565                'urlMap' => [
15566                  'location' => 'path',
15567                  'type' => 'string',
15568                  'required' => true,
15569                ],
15570                'requestId' => [
15571                  'location' => 'query',
15572                  'type' => 'string',
15573                ],
15574              ],
15575            ],'update' => [
15576              'path' => 'projects/{project}/global/urlMaps/{urlMap}',
15577              'httpMethod' => 'PUT',
15578              'parameters' => [
15579                'project' => [
15580                  'location' => 'path',
15581                  'type' => 'string',
15582                  'required' => true,
15583                ],
15584                'urlMap' => [
15585                  'location' => 'path',
15586                  'type' => 'string',
15587                  'required' => true,
15588                ],
15589                'requestId' => [
15590                  'location' => 'query',
15591                  'type' => 'string',
15592                ],
15593              ],
15594            ],'validate' => [
15595              'path' => 'projects/{project}/global/urlMaps/{urlMap}/validate',
15596              'httpMethod' => 'POST',
15597              'parameters' => [
15598                'project' => [
15599                  'location' => 'path',
15600                  'type' => 'string',
15601                  'required' => true,
15602                ],
15603                'urlMap' => [
15604                  'location' => 'path',
15605                  'type' => 'string',
15606                  'required' => true,
15607                ],
15608              ],
15609            ],
15610          ]
15611        ]
15612    );
15613    $this->vpnGateways = new Compute\Resource\VpnGateways(
15614        $this,
15615        $this->serviceName,
15616        'vpnGateways',
15617        [
15618          'methods' => [
15619            'aggregatedList' => [
15620              'path' => 'projects/{project}/aggregated/vpnGateways',
15621              'httpMethod' => 'GET',
15622              'parameters' => [
15623                'project' => [
15624                  'location' => 'path',
15625                  'type' => 'string',
15626                  'required' => true,
15627                ],
15628                'filter' => [
15629                  'location' => 'query',
15630                  'type' => 'string',
15631                ],
15632                'includeAllScopes' => [
15633                  'location' => 'query',
15634                  'type' => 'boolean',
15635                ],
15636                'maxResults' => [
15637                  'location' => 'query',
15638                  'type' => 'integer',
15639                ],
15640                'orderBy' => [
15641                  'location' => 'query',
15642                  'type' => 'string',
15643                ],
15644                'pageToken' => [
15645                  'location' => 'query',
15646                  'type' => 'string',
15647                ],
15648                'returnPartialSuccess' => [
15649                  'location' => 'query',
15650                  'type' => 'boolean',
15651                ],
15652              ],
15653            ],'delete' => [
15654              'path' => 'projects/{project}/regions/{region}/vpnGateways/{vpnGateway}',
15655              'httpMethod' => 'DELETE',
15656              'parameters' => [
15657                'project' => [
15658                  'location' => 'path',
15659                  'type' => 'string',
15660                  'required' => true,
15661                ],
15662                'region' => [
15663                  'location' => 'path',
15664                  'type' => 'string',
15665                  'required' => true,
15666                ],
15667                'vpnGateway' => [
15668                  'location' => 'path',
15669                  'type' => 'string',
15670                  'required' => true,
15671                ],
15672                'requestId' => [
15673                  'location' => 'query',
15674                  'type' => 'string',
15675                ],
15676              ],
15677            ],'get' => [
15678              'path' => 'projects/{project}/regions/{region}/vpnGateways/{vpnGateway}',
15679              'httpMethod' => 'GET',
15680              'parameters' => [
15681                'project' => [
15682                  'location' => 'path',
15683                  'type' => 'string',
15684                  'required' => true,
15685                ],
15686                'region' => [
15687                  'location' => 'path',
15688                  'type' => 'string',
15689                  'required' => true,
15690                ],
15691                'vpnGateway' => [
15692                  'location' => 'path',
15693                  'type' => 'string',
15694                  'required' => true,
15695                ],
15696              ],
15697            ],'getStatus' => [
15698              'path' => 'projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus',
15699              'httpMethod' => 'GET',
15700              'parameters' => [
15701                'project' => [
15702                  'location' => 'path',
15703                  'type' => 'string',
15704                  'required' => true,
15705                ],
15706                'region' => [
15707                  'location' => 'path',
15708                  'type' => 'string',
15709                  'required' => true,
15710                ],
15711                'vpnGateway' => [
15712                  'location' => 'path',
15713                  'type' => 'string',
15714                  'required' => true,
15715                ],
15716              ],
15717            ],'insert' => [
15718              'path' => 'projects/{project}/regions/{region}/vpnGateways',
15719              'httpMethod' => 'POST',
15720              'parameters' => [
15721                'project' => [
15722                  'location' => 'path',
15723                  'type' => 'string',
15724                  'required' => true,
15725                ],
15726                'region' => [
15727                  'location' => 'path',
15728                  'type' => 'string',
15729                  'required' => true,
15730                ],
15731                'requestId' => [
15732                  'location' => 'query',
15733                  'type' => 'string',
15734                ],
15735              ],
15736            ],'list' => [
15737              'path' => 'projects/{project}/regions/{region}/vpnGateways',
15738              'httpMethod' => 'GET',
15739              'parameters' => [
15740                'project' => [
15741                  'location' => 'path',
15742                  'type' => 'string',
15743                  'required' => true,
15744                ],
15745                'region' => [
15746                  'location' => 'path',
15747                  'type' => 'string',
15748                  'required' => true,
15749                ],
15750                'filter' => [
15751                  'location' => 'query',
15752                  'type' => 'string',
15753                ],
15754                'maxResults' => [
15755                  'location' => 'query',
15756                  'type' => 'integer',
15757                ],
15758                'orderBy' => [
15759                  'location' => 'query',
15760                  'type' => 'string',
15761                ],
15762                'pageToken' => [
15763                  'location' => 'query',
15764                  'type' => 'string',
15765                ],
15766                'returnPartialSuccess' => [
15767                  'location' => 'query',
15768                  'type' => 'boolean',
15769                ],
15770              ],
15771            ],'setLabels' => [
15772              'path' => 'projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels',
15773              'httpMethod' => 'POST',
15774              'parameters' => [
15775                'project' => [
15776                  'location' => 'path',
15777                  'type' => 'string',
15778                  'required' => true,
15779                ],
15780                'region' => [
15781                  'location' => 'path',
15782                  'type' => 'string',
15783                  'required' => true,
15784                ],
15785                'resource' => [
15786                  'location' => 'path',
15787                  'type' => 'string',
15788                  'required' => true,
15789                ],
15790                'requestId' => [
15791                  'location' => 'query',
15792                  'type' => 'string',
15793                ],
15794              ],
15795            ],'testIamPermissions' => [
15796              'path' => 'projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions',
15797              'httpMethod' => 'POST',
15798              'parameters' => [
15799                'project' => [
15800                  'location' => 'path',
15801                  'type' => 'string',
15802                  'required' => true,
15803                ],
15804                'region' => [
15805                  'location' => 'path',
15806                  'type' => 'string',
15807                  'required' => true,
15808                ],
15809                'resource' => [
15810                  'location' => 'path',
15811                  'type' => 'string',
15812                  'required' => true,
15813                ],
15814              ],
15815            ],
15816          ]
15817        ]
15818    );
15819    $this->vpnTunnels = new Compute\Resource\VpnTunnels(
15820        $this,
15821        $this->serviceName,
15822        'vpnTunnels',
15823        [
15824          'methods' => [
15825            'aggregatedList' => [
15826              'path' => 'projects/{project}/aggregated/vpnTunnels',
15827              'httpMethod' => 'GET',
15828              'parameters' => [
15829                'project' => [
15830                  'location' => 'path',
15831                  'type' => 'string',
15832                  'required' => true,
15833                ],
15834                'filter' => [
15835                  'location' => 'query',
15836                  'type' => 'string',
15837                ],
15838                'includeAllScopes' => [
15839                  'location' => 'query',
15840                  'type' => 'boolean',
15841                ],
15842                'maxResults' => [
15843                  'location' => 'query',
15844                  'type' => 'integer',
15845                ],
15846                'orderBy' => [
15847                  'location' => 'query',
15848                  'type' => 'string',
15849                ],
15850                'pageToken' => [
15851                  'location' => 'query',
15852                  'type' => 'string',
15853                ],
15854                'returnPartialSuccess' => [
15855                  'location' => 'query',
15856                  'type' => 'boolean',
15857                ],
15858              ],
15859            ],'delete' => [
15860              'path' => 'projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}',
15861              'httpMethod' => 'DELETE',
15862              'parameters' => [
15863                'project' => [
15864                  'location' => 'path',
15865                  'type' => 'string',
15866                  'required' => true,
15867                ],
15868                'region' => [
15869                  'location' => 'path',
15870                  'type' => 'string',
15871                  'required' => true,
15872                ],
15873                'vpnTunnel' => [
15874                  'location' => 'path',
15875                  'type' => 'string',
15876                  'required' => true,
15877                ],
15878                'requestId' => [
15879                  'location' => 'query',
15880                  'type' => 'string',
15881                ],
15882              ],
15883            ],'get' => [
15884              'path' => 'projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}',
15885              'httpMethod' => 'GET',
15886              'parameters' => [
15887                'project' => [
15888                  'location' => 'path',
15889                  'type' => 'string',
15890                  'required' => true,
15891                ],
15892                'region' => [
15893                  'location' => 'path',
15894                  'type' => 'string',
15895                  'required' => true,
15896                ],
15897                'vpnTunnel' => [
15898                  'location' => 'path',
15899                  'type' => 'string',
15900                  'required' => true,
15901                ],
15902              ],
15903            ],'insert' => [
15904              'path' => 'projects/{project}/regions/{region}/vpnTunnels',
15905              'httpMethod' => 'POST',
15906              'parameters' => [
15907                'project' => [
15908                  'location' => 'path',
15909                  'type' => 'string',
15910                  'required' => true,
15911                ],
15912                'region' => [
15913                  'location' => 'path',
15914                  'type' => 'string',
15915                  'required' => true,
15916                ],
15917                'requestId' => [
15918                  'location' => 'query',
15919                  'type' => 'string',
15920                ],
15921              ],
15922            ],'list' => [
15923              'path' => 'projects/{project}/regions/{region}/vpnTunnels',
15924              'httpMethod' => 'GET',
15925              'parameters' => [
15926                'project' => [
15927                  'location' => 'path',
15928                  'type' => 'string',
15929                  'required' => true,
15930                ],
15931                'region' => [
15932                  'location' => 'path',
15933                  'type' => 'string',
15934                  'required' => true,
15935                ],
15936                'filter' => [
15937                  'location' => 'query',
15938                  'type' => 'string',
15939                ],
15940                'maxResults' => [
15941                  'location' => 'query',
15942                  'type' => 'integer',
15943                ],
15944                'orderBy' => [
15945                  'location' => 'query',
15946                  'type' => 'string',
15947                ],
15948                'pageToken' => [
15949                  'location' => 'query',
15950                  'type' => 'string',
15951                ],
15952                'returnPartialSuccess' => [
15953                  'location' => 'query',
15954                  'type' => 'boolean',
15955                ],
15956              ],
15957            ],
15958          ]
15959        ]
15960    );
15961    $this->zoneOperations = new Compute\Resource\ZoneOperations(
15962        $this,
15963        $this->serviceName,
15964        'zoneOperations',
15965        [
15966          'methods' => [
15967            'delete' => [
15968              'path' => 'projects/{project}/zones/{zone}/operations/{operation}',
15969              'httpMethod' => 'DELETE',
15970              'parameters' => [
15971                'project' => [
15972                  'location' => 'path',
15973                  'type' => 'string',
15974                  'required' => true,
15975                ],
15976                'zone' => [
15977                  'location' => 'path',
15978                  'type' => 'string',
15979                  'required' => true,
15980                ],
15981                'operation' => [
15982                  'location' => 'path',
15983                  'type' => 'string',
15984                  'required' => true,
15985                ],
15986              ],
15987            ],'get' => [
15988              'path' => 'projects/{project}/zones/{zone}/operations/{operation}',
15989              'httpMethod' => 'GET',
15990              'parameters' => [
15991                'project' => [
15992                  'location' => 'path',
15993                  'type' => 'string',
15994                  'required' => true,
15995                ],
15996                'zone' => [
15997                  'location' => 'path',
15998                  'type' => 'string',
15999                  'required' => true,
16000                ],
16001                'operation' => [
16002                  'location' => 'path',
16003                  'type' => 'string',
16004                  'required' => true,
16005                ],
16006              ],
16007            ],'list' => [
16008              'path' => 'projects/{project}/zones/{zone}/operations',
16009              'httpMethod' => 'GET',
16010              'parameters' => [
16011                'project' => [
16012                  'location' => 'path',
16013                  'type' => 'string',
16014                  'required' => true,
16015                ],
16016                'zone' => [
16017                  'location' => 'path',
16018                  'type' => 'string',
16019                  'required' => true,
16020                ],
16021                'filter' => [
16022                  'location' => 'query',
16023                  'type' => 'string',
16024                ],
16025                'maxResults' => [
16026                  'location' => 'query',
16027                  'type' => 'integer',
16028                ],
16029                'orderBy' => [
16030                  'location' => 'query',
16031                  'type' => 'string',
16032                ],
16033                'pageToken' => [
16034                  'location' => 'query',
16035                  'type' => 'string',
16036                ],
16037                'returnPartialSuccess' => [
16038                  'location' => 'query',
16039                  'type' => 'boolean',
16040                ],
16041              ],
16042            ],'wait' => [
16043              'path' => 'projects/{project}/zones/{zone}/operations/{operation}/wait',
16044              'httpMethod' => 'POST',
16045              'parameters' => [
16046                'project' => [
16047                  'location' => 'path',
16048                  'type' => 'string',
16049                  'required' => true,
16050                ],
16051                'zone' => [
16052                  'location' => 'path',
16053                  'type' => 'string',
16054                  'required' => true,
16055                ],
16056                'operation' => [
16057                  'location' => 'path',
16058                  'type' => 'string',
16059                  'required' => true,
16060                ],
16061              ],
16062            ],
16063          ]
16064        ]
16065    );
16066    $this->zones = new Compute\Resource\Zones(
16067        $this,
16068        $this->serviceName,
16069        'zones',
16070        [
16071          'methods' => [
16072            'get' => [
16073              'path' => 'projects/{project}/zones/{zone}',
16074              'httpMethod' => 'GET',
16075              'parameters' => [
16076                'project' => [
16077                  'location' => 'path',
16078                  'type' => 'string',
16079                  'required' => true,
16080                ],
16081                'zone' => [
16082                  'location' => 'path',
16083                  'type' => 'string',
16084                  'required' => true,
16085                ],
16086              ],
16087            ],'list' => [
16088              'path' => 'projects/{project}/zones',
16089              'httpMethod' => 'GET',
16090              'parameters' => [
16091                'project' => [
16092                  'location' => 'path',
16093                  'type' => 'string',
16094                  'required' => true,
16095                ],
16096                'filter' => [
16097                  'location' => 'query',
16098                  'type' => 'string',
16099                ],
16100                'maxResults' => [
16101                  'location' => 'query',
16102                  'type' => 'integer',
16103                ],
16104                'orderBy' => [
16105                  'location' => 'query',
16106                  'type' => 'string',
16107                ],
16108                'pageToken' => [
16109                  'location' => 'query',
16110                  'type' => 'string',
16111                ],
16112                'returnPartialSuccess' => [
16113                  'location' => 'query',
16114                  'type' => 'boolean',
16115                ],
16116              ],
16117            ],
16118          ]
16119        ]
16120    );
16121  }
16122}
16123
16124// Adding a class alias for backwards compatibility with the previous class name.
16125class_alias(Compute::class, 'Google_Service_Compute');
16126