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 Monitoring (v3).
24 *
25 * <p>
26 * Manages your Cloud Monitoring data and configurations.</p>
27 *
28 * <p>
29 * For more information about this service, see the API
30 * <a href="https://cloud.google.com/monitoring/api/" target="_blank">Documentation</a>
31 * </p>
32 *
33 * @author Google, Inc.
34 */
35class Monitoring 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 write monitoring data for all of your Google and third-party Cloud and API projects. */
41  const MONITORING =
42      "https://www.googleapis.com/auth/monitoring";
43  /** View monitoring data for all of your Google Cloud and third-party projects. */
44  const MONITORING_READ =
45      "https://www.googleapis.com/auth/monitoring.read";
46  /** Publish metric data to your Google Cloud projects. */
47  const MONITORING_WRITE =
48      "https://www.googleapis.com/auth/monitoring.write";
49
50  public $folders_timeSeries;
51  public $organizations_timeSeries;
52  public $projects_alertPolicies;
53  public $projects_collectdTimeSeries;
54  public $projects_groups;
55  public $projects_groups_members;
56  public $projects_metricDescriptors;
57  public $projects_monitoredResourceDescriptors;
58  public $projects_notificationChannelDescriptors;
59  public $projects_notificationChannels;
60  public $projects_timeSeries;
61  public $projects_uptimeCheckConfigs;
62  public $services;
63  public $services_serviceLevelObjectives;
64  public $uptimeCheckIps;
65
66  /**
67   * Constructs the internal representation of the Monitoring service.
68   *
69   * @param Client|array $clientOrConfig The client used to deliver requests, or a
70   *                                     config array to pass to a new Client instance.
71   * @param string $rootUrl The root URL used for requests to the service.
72   */
73  public function __construct($clientOrConfig = [], $rootUrl = null)
74  {
75    parent::__construct($clientOrConfig);
76    $this->rootUrl = $rootUrl ?: 'https://monitoring.googleapis.com/';
77    $this->servicePath = '';
78    $this->batchPath = 'batch';
79    $this->version = 'v3';
80    $this->serviceName = 'monitoring';
81
82    $this->folders_timeSeries = new Monitoring\Resource\FoldersTimeSeries(
83        $this,
84        $this->serviceName,
85        'timeSeries',
86        [
87          'methods' => [
88            'list' => [
89              'path' => 'v3/{+name}/timeSeries',
90              'httpMethod' => 'GET',
91              'parameters' => [
92                'name' => [
93                  'location' => 'path',
94                  'type' => 'string',
95                  'required' => true,
96                ],
97                'aggregation.alignmentPeriod' => [
98                  'location' => 'query',
99                  'type' => 'string',
100                ],
101                'aggregation.crossSeriesReducer' => [
102                  'location' => 'query',
103                  'type' => 'string',
104                ],
105                'aggregation.groupByFields' => [
106                  'location' => 'query',
107                  'type' => 'string',
108                  'repeated' => true,
109                ],
110                'aggregation.perSeriesAligner' => [
111                  'location' => 'query',
112                  'type' => 'string',
113                ],
114                'filter' => [
115                  'location' => 'query',
116                  'type' => 'string',
117                ],
118                'interval.endTime' => [
119                  'location' => 'query',
120                  'type' => 'string',
121                ],
122                'interval.startTime' => [
123                  'location' => 'query',
124                  'type' => 'string',
125                ],
126                'orderBy' => [
127                  'location' => 'query',
128                  'type' => 'string',
129                ],
130                'pageSize' => [
131                  'location' => 'query',
132                  'type' => 'integer',
133                ],
134                'pageToken' => [
135                  'location' => 'query',
136                  'type' => 'string',
137                ],
138                'secondaryAggregation.alignmentPeriod' => [
139                  'location' => 'query',
140                  'type' => 'string',
141                ],
142                'secondaryAggregation.crossSeriesReducer' => [
143                  'location' => 'query',
144                  'type' => 'string',
145                ],
146                'secondaryAggregation.groupByFields' => [
147                  'location' => 'query',
148                  'type' => 'string',
149                  'repeated' => true,
150                ],
151                'secondaryAggregation.perSeriesAligner' => [
152                  'location' => 'query',
153                  'type' => 'string',
154                ],
155                'view' => [
156                  'location' => 'query',
157                  'type' => 'string',
158                ],
159              ],
160            ],
161          ]
162        ]
163    );
164    $this->organizations_timeSeries = new Monitoring\Resource\OrganizationsTimeSeries(
165        $this,
166        $this->serviceName,
167        'timeSeries',
168        [
169          'methods' => [
170            'list' => [
171              'path' => 'v3/{+name}/timeSeries',
172              'httpMethod' => 'GET',
173              'parameters' => [
174                'name' => [
175                  'location' => 'path',
176                  'type' => 'string',
177                  'required' => true,
178                ],
179                'aggregation.alignmentPeriod' => [
180                  'location' => 'query',
181                  'type' => 'string',
182                ],
183                'aggregation.crossSeriesReducer' => [
184                  'location' => 'query',
185                  'type' => 'string',
186                ],
187                'aggregation.groupByFields' => [
188                  'location' => 'query',
189                  'type' => 'string',
190                  'repeated' => true,
191                ],
192                'aggregation.perSeriesAligner' => [
193                  'location' => 'query',
194                  'type' => 'string',
195                ],
196                'filter' => [
197                  'location' => 'query',
198                  'type' => 'string',
199                ],
200                'interval.endTime' => [
201                  'location' => 'query',
202                  'type' => 'string',
203                ],
204                'interval.startTime' => [
205                  'location' => 'query',
206                  'type' => 'string',
207                ],
208                'orderBy' => [
209                  'location' => 'query',
210                  'type' => 'string',
211                ],
212                'pageSize' => [
213                  'location' => 'query',
214                  'type' => 'integer',
215                ],
216                'pageToken' => [
217                  'location' => 'query',
218                  'type' => 'string',
219                ],
220                'secondaryAggregation.alignmentPeriod' => [
221                  'location' => 'query',
222                  'type' => 'string',
223                ],
224                'secondaryAggregation.crossSeriesReducer' => [
225                  'location' => 'query',
226                  'type' => 'string',
227                ],
228                'secondaryAggregation.groupByFields' => [
229                  'location' => 'query',
230                  'type' => 'string',
231                  'repeated' => true,
232                ],
233                'secondaryAggregation.perSeriesAligner' => [
234                  'location' => 'query',
235                  'type' => 'string',
236                ],
237                'view' => [
238                  'location' => 'query',
239                  'type' => 'string',
240                ],
241              ],
242            ],
243          ]
244        ]
245    );
246    $this->projects_alertPolicies = new Monitoring\Resource\ProjectsAlertPolicies(
247        $this,
248        $this->serviceName,
249        'alertPolicies',
250        [
251          'methods' => [
252            'create' => [
253              'path' => 'v3/{+name}/alertPolicies',
254              'httpMethod' => 'POST',
255              'parameters' => [
256                'name' => [
257                  'location' => 'path',
258                  'type' => 'string',
259                  'required' => true,
260                ],
261              ],
262            ],'delete' => [
263              'path' => 'v3/{+name}',
264              'httpMethod' => 'DELETE',
265              'parameters' => [
266                'name' => [
267                  'location' => 'path',
268                  'type' => 'string',
269                  'required' => true,
270                ],
271              ],
272            ],'get' => [
273              'path' => 'v3/{+name}',
274              'httpMethod' => 'GET',
275              'parameters' => [
276                'name' => [
277                  'location' => 'path',
278                  'type' => 'string',
279                  'required' => true,
280                ],
281              ],
282            ],'list' => [
283              'path' => 'v3/{+name}/alertPolicies',
284              'httpMethod' => 'GET',
285              'parameters' => [
286                'name' => [
287                  'location' => 'path',
288                  'type' => 'string',
289                  'required' => true,
290                ],
291                'filter' => [
292                  'location' => 'query',
293                  'type' => 'string',
294                ],
295                'orderBy' => [
296                  'location' => 'query',
297                  'type' => 'string',
298                ],
299                'pageSize' => [
300                  'location' => 'query',
301                  'type' => 'integer',
302                ],
303                'pageToken' => [
304                  'location' => 'query',
305                  'type' => 'string',
306                ],
307              ],
308            ],'patch' => [
309              'path' => 'v3/{+name}',
310              'httpMethod' => 'PATCH',
311              'parameters' => [
312                'name' => [
313                  'location' => 'path',
314                  'type' => 'string',
315                  'required' => true,
316                ],
317                'updateMask' => [
318                  'location' => 'query',
319                  'type' => 'string',
320                ],
321              ],
322            ],
323          ]
324        ]
325    );
326    $this->projects_collectdTimeSeries = new Monitoring\Resource\ProjectsCollectdTimeSeries(
327        $this,
328        $this->serviceName,
329        'collectdTimeSeries',
330        [
331          'methods' => [
332            'create' => [
333              'path' => 'v3/{+name}/collectdTimeSeries',
334              'httpMethod' => 'POST',
335              'parameters' => [
336                'name' => [
337                  'location' => 'path',
338                  'type' => 'string',
339                  'required' => true,
340                ],
341              ],
342            ],
343          ]
344        ]
345    );
346    $this->projects_groups = new Monitoring\Resource\ProjectsGroups(
347        $this,
348        $this->serviceName,
349        'groups',
350        [
351          'methods' => [
352            'create' => [
353              'path' => 'v3/{+name}/groups',
354              'httpMethod' => 'POST',
355              'parameters' => [
356                'name' => [
357                  'location' => 'path',
358                  'type' => 'string',
359                  'required' => true,
360                ],
361                'validateOnly' => [
362                  'location' => 'query',
363                  'type' => 'boolean',
364                ],
365              ],
366            ],'delete' => [
367              'path' => 'v3/{+name}',
368              'httpMethod' => 'DELETE',
369              'parameters' => [
370                'name' => [
371                  'location' => 'path',
372                  'type' => 'string',
373                  'required' => true,
374                ],
375                'recursive' => [
376                  'location' => 'query',
377                  'type' => 'boolean',
378                ],
379              ],
380            ],'get' => [
381              'path' => 'v3/{+name}',
382              'httpMethod' => 'GET',
383              'parameters' => [
384                'name' => [
385                  'location' => 'path',
386                  'type' => 'string',
387                  'required' => true,
388                ],
389              ],
390            ],'list' => [
391              'path' => 'v3/{+name}/groups',
392              'httpMethod' => 'GET',
393              'parameters' => [
394                'name' => [
395                  'location' => 'path',
396                  'type' => 'string',
397                  'required' => true,
398                ],
399                'ancestorsOfGroup' => [
400                  'location' => 'query',
401                  'type' => 'string',
402                ],
403                'childrenOfGroup' => [
404                  'location' => 'query',
405                  'type' => 'string',
406                ],
407                'descendantsOfGroup' => [
408                  'location' => 'query',
409                  'type' => 'string',
410                ],
411                'pageSize' => [
412                  'location' => 'query',
413                  'type' => 'integer',
414                ],
415                'pageToken' => [
416                  'location' => 'query',
417                  'type' => 'string',
418                ],
419              ],
420            ],'update' => [
421              'path' => 'v3/{+name}',
422              'httpMethod' => 'PUT',
423              'parameters' => [
424                'name' => [
425                  'location' => 'path',
426                  'type' => 'string',
427                  'required' => true,
428                ],
429                'validateOnly' => [
430                  'location' => 'query',
431                  'type' => 'boolean',
432                ],
433              ],
434            ],
435          ]
436        ]
437    );
438    $this->projects_groups_members = new Monitoring\Resource\ProjectsGroupsMembers(
439        $this,
440        $this->serviceName,
441        'members',
442        [
443          'methods' => [
444            'list' => [
445              'path' => 'v3/{+name}/members',
446              'httpMethod' => 'GET',
447              'parameters' => [
448                'name' => [
449                  'location' => 'path',
450                  'type' => 'string',
451                  'required' => true,
452                ],
453                'filter' => [
454                  'location' => 'query',
455                  'type' => 'string',
456                ],
457                'interval.endTime' => [
458                  'location' => 'query',
459                  'type' => 'string',
460                ],
461                'interval.startTime' => [
462                  'location' => 'query',
463                  'type' => 'string',
464                ],
465                'pageSize' => [
466                  'location' => 'query',
467                  'type' => 'integer',
468                ],
469                'pageToken' => [
470                  'location' => 'query',
471                  'type' => 'string',
472                ],
473              ],
474            ],
475          ]
476        ]
477    );
478    $this->projects_metricDescriptors = new Monitoring\Resource\ProjectsMetricDescriptors(
479        $this,
480        $this->serviceName,
481        'metricDescriptors',
482        [
483          'methods' => [
484            'create' => [
485              'path' => 'v3/{+name}/metricDescriptors',
486              'httpMethod' => 'POST',
487              'parameters' => [
488                'name' => [
489                  'location' => 'path',
490                  'type' => 'string',
491                  'required' => true,
492                ],
493              ],
494            ],'delete' => [
495              'path' => 'v3/{+name}',
496              'httpMethod' => 'DELETE',
497              'parameters' => [
498                'name' => [
499                  'location' => 'path',
500                  'type' => 'string',
501                  'required' => true,
502                ],
503              ],
504            ],'get' => [
505              'path' => 'v3/{+name}',
506              'httpMethod' => 'GET',
507              'parameters' => [
508                'name' => [
509                  'location' => 'path',
510                  'type' => 'string',
511                  'required' => true,
512                ],
513              ],
514            ],'list' => [
515              'path' => 'v3/{+name}/metricDescriptors',
516              'httpMethod' => 'GET',
517              'parameters' => [
518                'name' => [
519                  'location' => 'path',
520                  'type' => 'string',
521                  'required' => true,
522                ],
523                'filter' => [
524                  'location' => 'query',
525                  'type' => 'string',
526                ],
527                'pageSize' => [
528                  'location' => 'query',
529                  'type' => 'integer',
530                ],
531                'pageToken' => [
532                  'location' => 'query',
533                  'type' => 'string',
534                ],
535              ],
536            ],
537          ]
538        ]
539    );
540    $this->projects_monitoredResourceDescriptors = new Monitoring\Resource\ProjectsMonitoredResourceDescriptors(
541        $this,
542        $this->serviceName,
543        'monitoredResourceDescriptors',
544        [
545          'methods' => [
546            'get' => [
547              'path' => 'v3/{+name}',
548              'httpMethod' => 'GET',
549              'parameters' => [
550                'name' => [
551                  'location' => 'path',
552                  'type' => 'string',
553                  'required' => true,
554                ],
555              ],
556            ],'list' => [
557              'path' => 'v3/{+name}/monitoredResourceDescriptors',
558              'httpMethod' => 'GET',
559              'parameters' => [
560                'name' => [
561                  'location' => 'path',
562                  'type' => 'string',
563                  'required' => true,
564                ],
565                'filter' => [
566                  'location' => 'query',
567                  'type' => 'string',
568                ],
569                'pageSize' => [
570                  'location' => 'query',
571                  'type' => 'integer',
572                ],
573                'pageToken' => [
574                  'location' => 'query',
575                  'type' => 'string',
576                ],
577              ],
578            ],
579          ]
580        ]
581    );
582    $this->projects_notificationChannelDescriptors = new Monitoring\Resource\ProjectsNotificationChannelDescriptors(
583        $this,
584        $this->serviceName,
585        'notificationChannelDescriptors',
586        [
587          'methods' => [
588            'get' => [
589              'path' => 'v3/{+name}',
590              'httpMethod' => 'GET',
591              'parameters' => [
592                'name' => [
593                  'location' => 'path',
594                  'type' => 'string',
595                  'required' => true,
596                ],
597              ],
598            ],'list' => [
599              'path' => 'v3/{+name}/notificationChannelDescriptors',
600              'httpMethod' => 'GET',
601              'parameters' => [
602                'name' => [
603                  'location' => 'path',
604                  'type' => 'string',
605                  'required' => true,
606                ],
607                'pageSize' => [
608                  'location' => 'query',
609                  'type' => 'integer',
610                ],
611                'pageToken' => [
612                  'location' => 'query',
613                  'type' => 'string',
614                ],
615              ],
616            ],
617          ]
618        ]
619    );
620    $this->projects_notificationChannels = new Monitoring\Resource\ProjectsNotificationChannels(
621        $this,
622        $this->serviceName,
623        'notificationChannels',
624        [
625          'methods' => [
626            'create' => [
627              'path' => 'v3/{+name}/notificationChannels',
628              'httpMethod' => 'POST',
629              'parameters' => [
630                'name' => [
631                  'location' => 'path',
632                  'type' => 'string',
633                  'required' => true,
634                ],
635              ],
636            ],'delete' => [
637              'path' => 'v3/{+name}',
638              'httpMethod' => 'DELETE',
639              'parameters' => [
640                'name' => [
641                  'location' => 'path',
642                  'type' => 'string',
643                  'required' => true,
644                ],
645                'force' => [
646                  'location' => 'query',
647                  'type' => 'boolean',
648                ],
649              ],
650            ],'get' => [
651              'path' => 'v3/{+name}',
652              'httpMethod' => 'GET',
653              'parameters' => [
654                'name' => [
655                  'location' => 'path',
656                  'type' => 'string',
657                  'required' => true,
658                ],
659              ],
660            ],'getVerificationCode' => [
661              'path' => 'v3/{+name}:getVerificationCode',
662              'httpMethod' => 'POST',
663              'parameters' => [
664                'name' => [
665                  'location' => 'path',
666                  'type' => 'string',
667                  'required' => true,
668                ],
669              ],
670            ],'list' => [
671              'path' => 'v3/{+name}/notificationChannels',
672              'httpMethod' => 'GET',
673              'parameters' => [
674                'name' => [
675                  'location' => 'path',
676                  'type' => 'string',
677                  'required' => true,
678                ],
679                'filter' => [
680                  'location' => 'query',
681                  'type' => 'string',
682                ],
683                'orderBy' => [
684                  'location' => 'query',
685                  'type' => 'string',
686                ],
687                'pageSize' => [
688                  'location' => 'query',
689                  'type' => 'integer',
690                ],
691                'pageToken' => [
692                  'location' => 'query',
693                  'type' => 'string',
694                ],
695              ],
696            ],'patch' => [
697              'path' => 'v3/{+name}',
698              'httpMethod' => 'PATCH',
699              'parameters' => [
700                'name' => [
701                  'location' => 'path',
702                  'type' => 'string',
703                  'required' => true,
704                ],
705                'updateMask' => [
706                  'location' => 'query',
707                  'type' => 'string',
708                ],
709              ],
710            ],'sendVerificationCode' => [
711              'path' => 'v3/{+name}:sendVerificationCode',
712              'httpMethod' => 'POST',
713              'parameters' => [
714                'name' => [
715                  'location' => 'path',
716                  'type' => 'string',
717                  'required' => true,
718                ],
719              ],
720            ],'verify' => [
721              'path' => 'v3/{+name}:verify',
722              'httpMethod' => 'POST',
723              'parameters' => [
724                'name' => [
725                  'location' => 'path',
726                  'type' => 'string',
727                  'required' => true,
728                ],
729              ],
730            ],
731          ]
732        ]
733    );
734    $this->projects_timeSeries = new Monitoring\Resource\ProjectsTimeSeries(
735        $this,
736        $this->serviceName,
737        'timeSeries',
738        [
739          'methods' => [
740            'create' => [
741              'path' => 'v3/{+name}/timeSeries',
742              'httpMethod' => 'POST',
743              'parameters' => [
744                'name' => [
745                  'location' => 'path',
746                  'type' => 'string',
747                  'required' => true,
748                ],
749              ],
750            ],'createService' => [
751              'path' => 'v3/{+name}/timeSeries:createService',
752              'httpMethod' => 'POST',
753              'parameters' => [
754                'name' => [
755                  'location' => 'path',
756                  'type' => 'string',
757                  'required' => true,
758                ],
759              ],
760            ],'list' => [
761              'path' => 'v3/{+name}/timeSeries',
762              'httpMethod' => 'GET',
763              'parameters' => [
764                'name' => [
765                  'location' => 'path',
766                  'type' => 'string',
767                  'required' => true,
768                ],
769                'aggregation.alignmentPeriod' => [
770                  'location' => 'query',
771                  'type' => 'string',
772                ],
773                'aggregation.crossSeriesReducer' => [
774                  'location' => 'query',
775                  'type' => 'string',
776                ],
777                'aggregation.groupByFields' => [
778                  'location' => 'query',
779                  'type' => 'string',
780                  'repeated' => true,
781                ],
782                'aggregation.perSeriesAligner' => [
783                  'location' => 'query',
784                  'type' => 'string',
785                ],
786                'filter' => [
787                  'location' => 'query',
788                  'type' => 'string',
789                ],
790                'interval.endTime' => [
791                  'location' => 'query',
792                  'type' => 'string',
793                ],
794                'interval.startTime' => [
795                  'location' => 'query',
796                  'type' => 'string',
797                ],
798                'orderBy' => [
799                  'location' => 'query',
800                  'type' => 'string',
801                ],
802                'pageSize' => [
803                  'location' => 'query',
804                  'type' => 'integer',
805                ],
806                'pageToken' => [
807                  'location' => 'query',
808                  'type' => 'string',
809                ],
810                'secondaryAggregation.alignmentPeriod' => [
811                  'location' => 'query',
812                  'type' => 'string',
813                ],
814                'secondaryAggregation.crossSeriesReducer' => [
815                  'location' => 'query',
816                  'type' => 'string',
817                ],
818                'secondaryAggregation.groupByFields' => [
819                  'location' => 'query',
820                  'type' => 'string',
821                  'repeated' => true,
822                ],
823                'secondaryAggregation.perSeriesAligner' => [
824                  'location' => 'query',
825                  'type' => 'string',
826                ],
827                'view' => [
828                  'location' => 'query',
829                  'type' => 'string',
830                ],
831              ],
832            ],'query' => [
833              'path' => 'v3/{+name}/timeSeries:query',
834              'httpMethod' => 'POST',
835              'parameters' => [
836                'name' => [
837                  'location' => 'path',
838                  'type' => 'string',
839                  'required' => true,
840                ],
841              ],
842            ],
843          ]
844        ]
845    );
846    $this->projects_uptimeCheckConfigs = new Monitoring\Resource\ProjectsUptimeCheckConfigs(
847        $this,
848        $this->serviceName,
849        'uptimeCheckConfigs',
850        [
851          'methods' => [
852            'create' => [
853              'path' => 'v3/{+parent}/uptimeCheckConfigs',
854              'httpMethod' => 'POST',
855              'parameters' => [
856                'parent' => [
857                  'location' => 'path',
858                  'type' => 'string',
859                  'required' => true,
860                ],
861              ],
862            ],'delete' => [
863              'path' => 'v3/{+name}',
864              'httpMethod' => 'DELETE',
865              'parameters' => [
866                'name' => [
867                  'location' => 'path',
868                  'type' => 'string',
869                  'required' => true,
870                ],
871              ],
872            ],'get' => [
873              'path' => 'v3/{+name}',
874              'httpMethod' => 'GET',
875              'parameters' => [
876                'name' => [
877                  'location' => 'path',
878                  'type' => 'string',
879                  'required' => true,
880                ],
881              ],
882            ],'list' => [
883              'path' => 'v3/{+parent}/uptimeCheckConfigs',
884              'httpMethod' => 'GET',
885              'parameters' => [
886                'parent' => [
887                  'location' => 'path',
888                  'type' => 'string',
889                  'required' => true,
890                ],
891                'pageSize' => [
892                  'location' => 'query',
893                  'type' => 'integer',
894                ],
895                'pageToken' => [
896                  'location' => 'query',
897                  'type' => 'string',
898                ],
899              ],
900            ],'patch' => [
901              'path' => 'v3/{+name}',
902              'httpMethod' => 'PATCH',
903              'parameters' => [
904                'name' => [
905                  'location' => 'path',
906                  'type' => 'string',
907                  'required' => true,
908                ],
909                'updateMask' => [
910                  'location' => 'query',
911                  'type' => 'string',
912                ],
913              ],
914            ],
915          ]
916        ]
917    );
918    $this->services = new Monitoring\Resource\Services(
919        $this,
920        $this->serviceName,
921        'services',
922        [
923          'methods' => [
924            'create' => [
925              'path' => 'v3/{+parent}/services',
926              'httpMethod' => 'POST',
927              'parameters' => [
928                'parent' => [
929                  'location' => 'path',
930                  'type' => 'string',
931                  'required' => true,
932                ],
933                'serviceId' => [
934                  'location' => 'query',
935                  'type' => 'string',
936                ],
937              ],
938            ],'delete' => [
939              'path' => 'v3/{+name}',
940              'httpMethod' => 'DELETE',
941              'parameters' => [
942                'name' => [
943                  'location' => 'path',
944                  'type' => 'string',
945                  'required' => true,
946                ],
947              ],
948            ],'get' => [
949              'path' => 'v3/{+name}',
950              'httpMethod' => 'GET',
951              'parameters' => [
952                'name' => [
953                  'location' => 'path',
954                  'type' => 'string',
955                  'required' => true,
956                ],
957              ],
958            ],'list' => [
959              'path' => 'v3/{+parent}/services',
960              'httpMethod' => 'GET',
961              'parameters' => [
962                'parent' => [
963                  'location' => 'path',
964                  'type' => 'string',
965                  'required' => true,
966                ],
967                'filter' => [
968                  'location' => 'query',
969                  'type' => 'string',
970                ],
971                'pageSize' => [
972                  'location' => 'query',
973                  'type' => 'integer',
974                ],
975                'pageToken' => [
976                  'location' => 'query',
977                  'type' => 'string',
978                ],
979              ],
980            ],'patch' => [
981              'path' => 'v3/{+name}',
982              'httpMethod' => 'PATCH',
983              'parameters' => [
984                'name' => [
985                  'location' => 'path',
986                  'type' => 'string',
987                  'required' => true,
988                ],
989                'updateMask' => [
990                  'location' => 'query',
991                  'type' => 'string',
992                ],
993              ],
994            ],
995          ]
996        ]
997    );
998    $this->services_serviceLevelObjectives = new Monitoring\Resource\ServicesServiceLevelObjectives(
999        $this,
1000        $this->serviceName,
1001        'serviceLevelObjectives',
1002        [
1003          'methods' => [
1004            'create' => [
1005              'path' => 'v3/{+parent}/serviceLevelObjectives',
1006              'httpMethod' => 'POST',
1007              'parameters' => [
1008                'parent' => [
1009                  'location' => 'path',
1010                  'type' => 'string',
1011                  'required' => true,
1012                ],
1013                'serviceLevelObjectiveId' => [
1014                  'location' => 'query',
1015                  'type' => 'string',
1016                ],
1017              ],
1018            ],'delete' => [
1019              'path' => 'v3/{+name}',
1020              'httpMethod' => 'DELETE',
1021              'parameters' => [
1022                'name' => [
1023                  'location' => 'path',
1024                  'type' => 'string',
1025                  'required' => true,
1026                ],
1027              ],
1028            ],'get' => [
1029              'path' => 'v3/{+name}',
1030              'httpMethod' => 'GET',
1031              'parameters' => [
1032                'name' => [
1033                  'location' => 'path',
1034                  'type' => 'string',
1035                  'required' => true,
1036                ],
1037                'view' => [
1038                  'location' => 'query',
1039                  'type' => 'string',
1040                ],
1041              ],
1042            ],'list' => [
1043              'path' => 'v3/{+parent}/serviceLevelObjectives',
1044              'httpMethod' => 'GET',
1045              'parameters' => [
1046                'parent' => [
1047                  'location' => 'path',
1048                  'type' => 'string',
1049                  'required' => true,
1050                ],
1051                'filter' => [
1052                  'location' => 'query',
1053                  'type' => 'string',
1054                ],
1055                'pageSize' => [
1056                  'location' => 'query',
1057                  'type' => 'integer',
1058                ],
1059                'pageToken' => [
1060                  'location' => 'query',
1061                  'type' => 'string',
1062                ],
1063                'view' => [
1064                  'location' => 'query',
1065                  'type' => 'string',
1066                ],
1067              ],
1068            ],'patch' => [
1069              'path' => 'v3/{+name}',
1070              'httpMethod' => 'PATCH',
1071              'parameters' => [
1072                'name' => [
1073                  'location' => 'path',
1074                  'type' => 'string',
1075                  'required' => true,
1076                ],
1077                'updateMask' => [
1078                  'location' => 'query',
1079                  'type' => 'string',
1080                ],
1081              ],
1082            ],
1083          ]
1084        ]
1085    );
1086    $this->uptimeCheckIps = new Monitoring\Resource\UptimeCheckIps(
1087        $this,
1088        $this->serviceName,
1089        'uptimeCheckIps',
1090        [
1091          'methods' => [
1092            'list' => [
1093              'path' => 'v3/uptimeCheckIps',
1094              'httpMethod' => 'GET',
1095              'parameters' => [
1096                'pageSize' => [
1097                  'location' => 'query',
1098                  'type' => 'integer',
1099                ],
1100                'pageToken' => [
1101                  'location' => 'query',
1102                  'type' => 'string',
1103                ],
1104              ],
1105            ],
1106          ]
1107        ]
1108    );
1109  }
1110}
1111
1112// Adding a class alias for backwards compatibility with the previous class name.
1113class_alias(Monitoring::class, 'Google_Service_Monitoring');
1114