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            ],'