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 CloudDeploy (v1).
24 *
25 * <p>
26</p>
27 *
28 * <p>
29 * For more information about this service, see the API
30 * <a href="https://cloud.google.com/deploy/" target="_blank">Documentation</a>
31 * </p>
32 *
33 * @author Google, Inc.
34 */
35class CloudDeploy 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
41  public $projects_locations;
42  public $projects_locations_deliveryPipelines;
43  public $projects_locations_deliveryPipelines_releases;
44  public $projects_locations_deliveryPipelines_releases_rollouts;
45  public $projects_locations_operations;
46  public $projects_locations_targets;
47
48  /**
49   * Constructs the internal representation of the CloudDeploy service.
50   *
51   * @param Client|array $clientOrConfig The client used to deliver requests, or a
52   *                                     config array to pass to a new Client instance.
53   * @param string $rootUrl The root URL used for requests to the service.
54   */
55  public function __construct($clientOrConfig = [], $rootUrl = null)
56  {
57    parent::__construct($clientOrConfig);
58    $this->rootUrl = $rootUrl ?: 'https://clouddeploy.googleapis.com/';
59    $this->servicePath = '';
60    $this->batchPath = 'batch';
61    $this->version = 'v1';
62    $this->serviceName = 'clouddeploy';
63
64    $this->projects_locations = new CloudDeploy\Resource\ProjectsLocations(
65        $this,
66        $this->serviceName,
67        'locations',
68        [
69          'methods' => [
70            'get' => [
71              'path' => 'v1/{+name}',
72              'httpMethod' => 'GET',
73              'parameters' => [
74                'name' => [
75                  'location' => 'path',
76                  'type' => 'string',
77                  'required' => true,
78                ],
79              ],
80            ],'getConfig' => [
81              'path' => 'v1/{+name}',
82              'httpMethod' => 'GET',
83              'parameters' => [
84                'name' => [
85                  'location' => 'path',
86                  'type' => 'string',
87                  'required' => true,
88                ],
89              ],
90            ],'list' => [
91              'path' => 'v1/{+name}/locations',
92              'httpMethod' => 'GET',
93              'parameters' => [
94                'name' => [
95                  'location' => 'path',
96                  'type' => 'string',
97                  'required' => true,
98                ],
99                'filter' => [
100                  'location' => 'query',
101                  'type' => 'string',
102                ],
103                'pageSize' => [
104                  'location' => 'query',
105                  'type' => 'integer',
106                ],
107                'pageToken' => [
108                  'location' => 'query',
109                  'type' => 'string',
110                ],
111              ],
112            ],
113          ]
114        ]
115    );
116    $this->projects_locations_deliveryPipelines = new CloudDeploy\Resource\ProjectsLocationsDeliveryPipelines(
117        $this,
118        $this->serviceName,
119        'deliveryPipelines',
120        [
121          'methods' => [
122            'create' => [
123              'path' => 'v1/{+parent}/deliveryPipelines',
124              'httpMethod' => 'POST',
125              'parameters' => [
126                'parent' => [
127                  'location' => 'path',
128                  'type' => 'string',
129                  'required' => true,
130                ],
131                'deliveryPipelineId' => [
132                  'location' => 'query',
133                  'type' => 'string',
134                ],
135                'requestId' => [
136                  'location' => 'query',
137                  'type' => 'string',
138                ],
139                'validateOnly' => [
140                  'location' => 'query',
141                  'type' => 'boolean',
142                ],
143              ],
144            ],'delete' => [
145              'path' => 'v1/{+name}',
146              'httpMethod' => 'DELETE',
147              'parameters' => [
148                'name' => [
149                  'location' => 'path',
150                  'type' => 'string',
151                  'required' => true,
152                ],
153                'allowMissing' => [
154                  'location' => 'query',
155                  'type' => 'boolean',
156                ],
157                'etag' => [
158                  'location' => 'query',
159                  'type' => 'string',
160                ],
161                'force' => [
162                  'location' => 'query',
163                  'type' => 'boolean',
164                ],
165                'requestId' => [
166                  'location' => 'query',
167                  'type' => 'string',
168                ],
169                'validateOnly' => [
170                  'location' => 'query',
171                  'type' => 'boolean',
172                ],
173              ],
174            ],'get' => [
175              'path' => 'v1/{+name}',
176              'httpMethod' => 'GET',
177              'parameters' => [
178                'name' => [
179                  'location' => 'path',
180                  'type' => 'string',
181                  'required' => true,
182                ],
183              ],
184            ],'getIamPolicy' => [
185              'path' => 'v1/{+resource}:getIamPolicy',
186              'httpMethod' => 'GET',
187              'parameters' => [
188                'resource' => [
189                  'location' => 'path',
190                  'type' => 'string',
191                  'required' => true,
192                ],
193                'options.requestedPolicyVersion' => [
194                  'location' => 'query',
195                  'type' => 'integer',
196                ],
197              ],
198            ],'list' => [
199              'path' => 'v1/{+parent}/deliveryPipelines',
200              'httpMethod' => 'GET',
201              'parameters' => [
202                'parent' => [
203                  'location' => 'path',
204                  'type' => 'string',
205                  'required' => true,
206                ],
207                'filter' => [
208                  'location' => 'query',
209                  'type' => 'string',
210                ],
211                'orderBy' => [
212                  'location' => 'query',
213                  'type' => 'string',
214                ],
215                'pageSize' => [
216                  'location' => 'query',
217                  'type' => 'integer',
218                ],
219                'pageToken' => [
220                  'location' => 'query',
221                  'type' => 'string',
222                ],
223              ],
224            ],'patch' => [
225              'path' => 'v1/{+name}',
226              'httpMethod' => 'PATCH',
227              'parameters' => [
228                'name' => [
229                  'location' => 'path',
230                  'type' => 'string',
231                  'required' => true,
232                ],
233                'allowMissing' => [
234                  'location' => 'query',
235                  'type' => 'boolean',
236                ],
237                'requestId' => [
238                  'location' => 'query',
239                  'type' => 'string',
240                ],
241                'updateMask' => [
242                  'location' => 'query',
243                  'type' => 'string',
244                ],
245                'validateOnly' => [
246                  'location' => 'query',
247                  'type' => 'boolean',
248                ],
249              ],
250            ],'setIamPolicy' => [
251              'path' => 'v1/{+resource}:setIamPolicy',
252              'httpMethod' => 'POST',
253              'parameters' => [
254                'resource' => [
255                  'location' => 'path',
256                  'type' => 'string',
257                  'required' => true,
258                ],
259              ],
260            ],'testIamPermissions' => [
261              'path' => 'v1/{+resource}:testIamPermissions',
262              'httpMethod' => 'POST',
263              'parameters' => [
264                'resource' => [
265                  'location' => 'path',
266                  'type' => 'string',
267                  'required' => true,
268                ],
269              ],
270            ],
271          ]
272        ]
273    );
274    $this->projects_locations_deliveryPipelines_releases = new CloudDeploy\Resource\ProjectsLocationsDeliveryPipelinesReleases(
275        $this,
276        $this->serviceName,
277        'releases',
278        [
279          'methods' => [
280            'create' => [
281              'path' => 'v1/{+parent}/releases',
282              'httpMethod' => 'POST',
283              'parameters' => [
284                'parent' => [
285                  'location' => 'path',
286                  'type' => 'string',
287                  'required' => true,
288                ],
289                'releaseId' => [
290                  'location' => 'query',
291                  'type' => 'string',
292                ],
293                'requestId' => [
294                  'location' => 'query',
295                  'type' => 'string',
296                ],
297                'validateOnly' => [
298                  'location' => 'query',
299                  'type' => 'boolean',
300                ],
301              ],
302            ],'get' => [
303              'path' => 'v1/{+name}',
304              'httpMethod' => 'GET',
305              'parameters' => [
306                'name' => [
307                  'location' => 'path',
308                  'type' => 'string',
309                  'required' => true,
310                ],
311              ],
312            ],'list' => [
313              'path' => 'v1/{+parent}/releases',
314              'httpMethod' => 'GET',
315              'parameters' => [
316                'parent' => [
317                  'location' => 'path',
318                  'type' => 'string',
319                  'required' => true,
320                ],
321                'filter' => [
322                  'location' => 'query',
323                  'type' => 'string',
324                ],
325                'orderBy' => [
326                  'location' => 'query',
327                  'type' => 'string',
328                ],
329                'pageSize' => [
330                  'location' => 'query',
331                  'type' => 'integer',
332                ],
333                'pageToken' => [
334                  'location' => 'query',
335                  'type' => 'string',
336                ],
337              ],
338            ],
339          ]
340        ]
341    );
342    $this->projects_locations_deliveryPipelines_releases_rollouts = new CloudDeploy\Resource\ProjectsLocationsDeliveryPipelinesReleasesRollouts(
343        $this,
344        $this->serviceName,
345        'rollouts',
346        [
347          'methods' => [
348            'approve' => [
349              'path' => 'v1/{+name}:approve',
350              'httpMethod' => 'POST',
351              'parameters' => [
352                'name' => [
353                  'location' => 'path',
354                  'type' => 'string',
355                  'required' => true,
356                ],
357              ],
358            ],'create' => [
359              'path' => 'v1/{+parent}/rollouts',
360              'httpMethod' => 'POST',
361              'parameters' => [
362                'parent' => [
363                  'location' => 'path',
364                  'type' => 'string',
365                  'required' => true,
366                ],
367                'requestId' => [
368                  'location' => 'query',
369                  'type' => 'string',
370                ],
371                'rolloutId' => [
372                  'location' => 'query',
373                  'type' => 'string',
374                ],
375                'validateOnly' => [
376                  'location' => 'query',
377                  'type' => 'boolean',
378                ],
379              ],
380            ],'get' => [
381              'path' => 'v1/{+name}',
382              'httpMethod' => 'GET',
383              'parameters' => [
384                'name' => [
385                  'location' => 'path',
386                  'type' => 'string',
387                  'required' => true,
388                ],
389              ],
390            ],'list' => [
391              'path' => 'v1/{+parent}/rollouts',
392              'httpMethod' => 'GET',
393              'parameters' => [
394                'parent' => [
395                  'location' => 'path',
396                  'type' => 'string',
397                  'required' => true,
398                ],
399                'filter' => [
400                  'location' => 'query',
401                  'type' => 'string',
402                ],
403                'orderBy' => [
404                  'location' => 'query',
405                  'type' => 'string',
406                ],
407                'pageSize' => [
408                  'location' => 'query',
409                  'type' => 'integer',
410                ],
411                'pageToken' => [
412                  'location' => 'query',
413                  'type' => 'string',
414                ],
415              ],
416            ],
417          ]
418        ]
419    );
420    $this->projects_locations_operations = new CloudDeploy\Resource\ProjectsLocationsOperations(
421        $this,
422        $this->serviceName,
423        'operations',
424        [
425          'methods' => [
426            'cancel' => [
427              'path' => 'v1/{+name}:cancel',
428              'httpMethod' => 'POST',
429              'parameters' => [
430                'name' => [
431                  'location' => 'path',
432                  'type' => 'string',
433                  'required' => true,
434                ],
435              ],
436            ],'delete' => [
437              'path' => 'v1/{+name}',
438              'httpMethod' => 'DELETE',
439              'parameters' => [
440                'name' => [
441                  'location' => 'path',
442                  'type' => 'string',
443                  'required' => true,
444                ],
445              ],
446            ],'get' => [
447              'path' => 'v1/{+name}',
448              'httpMethod' => 'GET',
449              'parameters' => [
450                'name' => [
451                  'location' => 'path',
452                  'type' => 'string',
453                  'required' => true,
454                ],
455              ],
456            ],'list' => [
457              'path' => 'v1/{+name}/operations',
458              'httpMethod' => 'GET',
459              'parameters' => [
460                'name' => [
461                  'location' => 'path',
462                  'type' => 'string',
463                  'required' => true,
464                ],
465                'filter' => [
466                  'location' => 'query',
467                  'type' => 'string',
468                ],
469                'pageSize' => [
470                  'location' => 'query',
471                  'type' => 'integer',
472                ],
473                'pageToken' => [
474                  'location' => 'query',
475                  'type' => 'string',
476                ],
477              ],
478            ],
479          ]
480        ]
481    );
482    $this->projects_locations_targets = new CloudDeploy\Resource\ProjectsLocationsTargets(
483        $this,
484        $this->serviceName,
485        'targets',
486        [
487          'methods' => [
488            'create' => [
489              'path' => 'v1/{+parent}/targets',
490              'httpMethod' => 'POST',
491              'parameters' => [
492                'parent' => [
493                  'location' => 'path',
494                  'type' => 'string',
495                  'required' => true,
496                ],
497                'requestId' => [
498                  'location' => 'query',
499                  'type' => 'string',
500                ],
501                'targetId' => [
502                  'location' => 'query',
503                  'type' => 'string',
504                ],
505                'validateOnly' => [
506                  'location' => 'query',
507                  'type' => 'boolean',
508                ],
509              ],
510            ],'delete' => [
511              'path' => 'v1/{+name}',
512              'httpMethod' => 'DELETE',
513              'parameters' => [
514                'name' => [
515                  'location' => 'path',
516                  'type' => 'string',
517                  'required' => true,
518                ],
519                'allowMissing' => [
520                  'location' => 'query',
521                  'type' => 'boolean',
522                ],
523                'etag' => [
524                  'location' => 'query',
525                  'type' => 'string',
526                ],
527                'requestId' => [
528                  'location' => 'query',
529                  'type' => 'string',
530                ],
531                'validateOnly' => [
532                  'location' => 'query',
533                  'type' => 'boolean',
534                ],
535              ],
536            ],'get' => [
537              'path' => 'v1/{+name}',
538              'httpMethod' => 'GET',
539              'parameters' => [
540                'name' => [
541                  'location' => 'path',
542                  'type' => 'string',
543                  'required' => true,
544                ],
545              ],
546            ],'getIamPolicy' => [
547              'path' => 'v1/{+resource}:getIamPolicy',
548              'httpMethod' => 'GET',
549              'parameters' => [
550                'resource' => [
551                  'location' => 'path',
552                  'type' => 'string',
553                  'required' => true,
554                ],
555                'options.requestedPolicyVersion' => [
556                  'location' => 'query',
557                  'type' => 'integer',
558                ],
559              ],
560            ],'list' => [
561              'path' => 'v1/{+parent}/targets',
562              'httpMethod' => 'GET',
563              'parameters' => [
564                'parent' => [
565                  'location' => 'path',
566                  'type' => 'string',
567                  'required' => true,
568                ],
569                'filter' => [
570                  'location' => 'query',
571                  'type' => 'string',
572                ],
573                'orderBy' => [
574                  'location' => 'query',
575                  'type' => 'string',
576                ],
577                'pageSize' => [
578                  'location' => 'query',
579                  'type' => 'integer',
580                ],
581                'pageToken' => [
582                  'location' => 'query',
583                  'type' => 'string',
584                ],
585              ],
586            ],'patch' => [
587              'path' => 'v1/{+name}',
588              'httpMethod' => 'PATCH',
589              'parameters' => [
590                'name' => [
591                  'location' => 'path',
592                  'type' => 'string',
593                  'required' => true,
594                ],
595                'allowMissing' => [
596                  'location' => 'query',
597                  'type' => 'boolean',
598                ],
599                'requestId' => [
600                  'location' => 'query',
601                  'type' => 'string',
602                ],
603                'updateMask' => [
604                  'location' => 'query',
605                  'type' => 'string',
606                ],
607                'validateOnly' => [
608                  'location' => 'query',
609                  'type' => 'boolean',
610                ],
611              ],
612            ],'setIamPolicy' => [
613              'path' => 'v1/{+resource}:setIamPolicy',
614              'httpMethod' => 'POST',
615              'parameters' => [
616                'resource' => [
617                  'location' => 'path',
618                  'type' => 'string',
619                  'required' => true,
620                ],
621              ],
622            ],'testIamPermissions' => [
623              'path' => 'v1/{+resource}:testIamPermissions',
624              'httpMethod' => 'POST',
625              'parameters' => [
626                'resource' => [
627                  'location' => 'path',
628                  'type' => 'string',
629                  'required' => true,
630                ],
631              ],
632            ],
633          ]
634        ]
635    );
636  }
637}
638
639// Adding a class alias for backwards compatibility with the previous class name.
640class_alias(CloudDeploy::class, 'Google_Service_CloudDeploy');
641