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 YouTube (v3).
24 *
25 * <p>
26 * The YouTube Data API v3 is an API that provides access to YouTube data, such
27 * as videos, playlists, and channels.</p>
28 *
29 * <p>
30 * For more information about this service, see the API
31 * <a href="https://developers.google.com/youtube/" target="_blank">Documentation</a>
32 * </p>
33 *
34 * @author Google, Inc.
35 */
36class YouTube extends \Google\Service
37{
38  /** Manage your YouTube account. */
39  const YOUTUBE =
40      "https://www.googleapis.com/auth/youtube";
41  /** See a list of your current active channel members, their current level, and when they became a member. */
42  const YOUTUBE_CHANNEL_MEMBERSHIPS_CREATOR =
43      "https://www.googleapis.com/auth/youtube.channel-memberships.creator";
44  /** See, edit, and permanently delete your YouTube videos, ratings, comments and captions. */
45  const YOUTUBE_FORCE_SSL =
46      "https://www.googleapis.com/auth/youtube.force-ssl";
47  /** View your YouTube account. */
48  const YOUTUBE_READONLY =
49      "https://www.googleapis.com/auth/youtube.readonly";
50  /** Manage your YouTube videos. */
51  const YOUTUBE_UPLOAD =
52      "https://www.googleapis.com/auth/youtube.upload";
53  /** View and manage your assets and associated content on YouTube. */
54  const YOUTUBEPARTNER =
55      "https://www.googleapis.com/auth/youtubepartner";
56  /** View private information of your YouTube channel relevant during the audit process with a YouTube partner. */
57  const YOUTUBEPARTNER_CHANNEL_AUDIT =
58      "https://www.googleapis.com/auth/youtubepartner-channel-audit";
59
60  public $abuseReports;
61  public $activities;
62  public $captions;
63  public $channelBanners;
64  public $channelSections;
65  public $channels;
66  public $commentThreads;
67  public $comments;
68  public $i18nLanguages;
69  public $i18nRegions;
70  public $liveBroadcasts;
71  public $liveChatBans;
72  public $liveChatMessages;
73  public $liveChatModerators;
74  public $liveStreams;
75  public $members;
76  public $membershipsLevels;
77  public $playlistItems;
78  public $playlists;
79  public $search;
80  public $subscriptions;
81  public $superChatEvents;
82  public $tests;
83  public $thirdPartyLinks;
84  public $thumbnails;
85  public $videoAbuseReportReasons;
86  public $videoCategories;
87  public $videos;
88  public $watermarks;
89  public $youtube_v3;
90
91  /**
92   * Constructs the internal representation of the YouTube service.
93   *
94   * @param Client|array $clientOrConfig The client used to deliver requests, or a
95   *                                     config array to pass to a new Client instance.
96   * @param string $rootUrl The root URL used for requests to the service.
97   */
98  public function __construct($clientOrConfig = [], $rootUrl = null)
99  {
100    parent::__construct($clientOrConfig);
101    $this->rootUrl = $rootUrl ?: 'https://youtube.googleapis.com/';
102    $this->servicePath = '';
103    $this->batchPath = 'batch';
104    $this->version = 'v3';
105    $this->serviceName = 'youtube';
106
107    $this->abuseReports = new YouTube\Resource\AbuseReports(
108        $this,
109        $this->serviceName,
110        'abuseReports',
111        [
112          'methods' => [
113            'insert' => [
114              'path' => 'youtube/v3/abuseReports',
115              'httpMethod' => 'POST',
116              'parameters' => [
117                'part' => [
118                  'location' => 'query',
119                  'type' => 'string',
120                  'repeated' => true,
121                  'required' => true,
122                ],
123              ],
124            ],
125          ]
126        ]
127    );
128    $this->activities = new YouTube\Resource\Activities(
129        $this,
130        $this->serviceName,
131        'activities',
132        [
133          'methods' => [
134            'list' => [
135              'path' => 'youtube/v3/activities',
136              'httpMethod' => 'GET',
137              'parameters' => [
138                'part' => [
139                  'location' => 'query',
140                  'type' => 'string',
141                  'repeated' => true,
142                  'required' => true,
143                ],
144                'channelId' => [
145                  'location' => 'query',
146                  'type' => 'string',
147                ],
148                'home' => [
149                  'location' => 'query',
150                  'type' => 'boolean',
151                ],
152                'maxResults' => [
153                  'location' => 'query',
154                  'type' => 'integer',
155                ],
156                'mine' => [
157                  'location' => 'query',
158                  'type' => 'boolean',
159                ],
160                'pageToken' => [
161                  'location' => 'query',
162                  'type' => 'string',
163                ],
164                'publishedAfter' => [
165                  'location' => 'query',
166                  'type' => 'string',
167                ],
168                'publishedBefore' => [
169                  'location' => 'query',
170                  'type' => 'string',
171                ],
172                'regionCode' => [
173                  'location' => 'query',
174                  'type' => 'string',
175                ],
176              ],
177            ],
178          ]
179        ]
180    );
181    $this->captions = new YouTube\Resource\Captions(
182        $this,
183        $this->serviceName,
184        'captions',
185        [
186          'methods' => [
187            'delete' => [
188              'path' => 'youtube/v3/captions',
189              'httpMethod' => 'DELETE',
190              'parameters' => [
191                'id' => [
192                  'location' => 'query',
193                  'type' => 'string',
194                  'required' => true,
195                ],
196                'onBehalfOf' => [
197                  'location' => 'query',
198                  'type' => 'string',
199                ],
200                'onBehalfOfContentOwner' => [
201                  'location' => 'query',
202                  'type' => 'string',
203                ],
204              ],
205            ],'download' => [
206              'path' => 'youtube/v3/captions/{id}',
207              'httpMethod' => 'GET',
208              'parameters' => [
209                'id' => [
210                  'location' => 'path',
211                  'type' => 'string',
212                  'required' => true,
213                ],
214                'onBehalfOf' => [
215                  'location' => 'query',
216                  'type' => 'string',
217                ],
218                'onBehalfOfContentOwner' => [
219                  'location' => 'query',
220                  'type' => 'string',
221                ],
222                'tfmt' => [
223                  'location' => 'query',
224                  'type' => 'string',
225                ],
226                'tlang' => [
227                  'location' => 'query',
228                  'type' => 'string',
229                ],
230              ],
231            ],'insert' => [
232              'path' => 'youtube/v3/captions',
233              'httpMethod' => 'POST',
234              'parameters' => [
235                'part' => [
236                  'location' => 'query',
237                  'type' => 'string',
238                  'repeated' => true,
239                  'required' => true,
240                ],
241                'onBehalfOf' => [
242                  'location' => 'query',
243                  'type' => 'string',
244                ],
245                'onBehalfOfContentOwner' => [
246                  'location' => 'query',
247                  'type' => 'string',
248                ],
249                'sync' => [
250                  'location' => 'query',
251                  'type' => 'boolean',
252                ],
253              ],
254            ],'list' => [
255              'path' => 'youtube/v3/captions',
256              'httpMethod' => 'GET',
257              'parameters' => [
258                'part' => [
259                  'location' => 'query',
260                  'type' => 'string',
261                  'repeated' => true,
262                  'required' => true,
263                ],
264                'videoId' => [
265                  'location' => 'query',
266                  'type' => 'string',
267                  'required' => true,
268                ],
269                'id' => [
270                  'location' => 'query',
271                  'type' => 'string',
272                  'repeated' => true,
273                ],
274                'onBehalfOf' => [
275                  'location' => 'query',
276                  'type' => 'string',
277                ],
278                'onBehalfOfContentOwner' => [
279                  'location' => 'query',
280                  'type' => 'string',
281                ],
282              ],
283            ],'update' => [
284              'path' => 'youtube/v3/captions',
285              'httpMethod' => 'PUT',
286              'parameters' => [
287                'part' => [
288                  'location' => 'query',
289                  'type' => 'string',
290                  'repeated' => true,
291                  'required' => true,
292                ],
293                'onBehalfOf' => [
294                  'location' => 'query',
295                  'type' => 'string',
296                ],
297                'onBehalfOfContentOwner' => [
298                  'location' => 'query',
299                  'type' => 'string',
300                ],
301                'sync' => [
302                  'location' => 'query',
303                  'type' => 'boolean',
304                ],
305              ],
306            ],
307          ]
308        ]
309    );
310    $this->channelBanners = new YouTube\Resource\ChannelBanners(
311        $this,
312        $this->serviceName,
313        'channelBanners',
314        [
315          'methods' => [
316            'insert' => [
317              'path' => 'youtube/v3/channelBanners/insert',
318              'httpMethod' => 'POST',
319              'parameters' => [
320                'channelId' => [
321                  'location' => 'query',
322                  'type' => 'string',
323                ],
324                'onBehalfOfContentOwner' => [
325                  'location' => 'query',
326                  'type' => 'string',
327                ],
328                'onBehalfOfContentOwnerChannel' => [
329                  'location' => 'query',
330                  'type' => 'string',
331                ],
332              ],
333            ],
334          ]
335        ]
336    );
337    $this->channelSections = new YouTube\Resource\ChannelSections(
338        $this,
339        $this->serviceName,
340        'channelSections',
341        [
342          'methods' => [
343            'delete' => [
344              'path' => 'youtube/v3/channelSections',
345              'httpMethod' => 'DELETE',
346              'parameters' => [
347                'id' => [
348                  'location' => 'query',
349                  'type' => 'string',
350                  'required' => true,
351                ],
352                'onBehalfOfContentOwner' => [
353                  'location' => 'query',
354                  'type' => 'string',
355                ],
356              ],
357            ],'insert' => [
358              'path' => 'youtube/v3/channelSections',
359              'httpMethod' => 'POST',
360              'parameters' => [
361                'part' => [
362                  'location' => 'query',
363                  'type' => 'string',
364                  'repeated' => true,
365                  'required' => true,
366                ],
367                'onBehalfOfContentOwner' => [
368                  'location' => 'query',
369                  'type' => 'string',
370                ],
371                'onBehalfOfContentOwnerChannel' => [
372                  'location' => 'query',
373                  'type' => 'string',
374                ],
375              ],
376            ],'list' => [
377              'path' => 'youtube/v3/channelSections',
378              'httpMethod' => 'GET',
379              'parameters' => [
380                'part' => [
381                  'location' => 'query',
382                  'type' => 'string',
383                  'repeated' => true,
384                  'required' => true,
385                ],
386                'channelId' => [
387                  'location' => 'query',
388                  'type' => 'string',
389                ],
390                'hl' => [
391                  'location' => 'query',
392                  'type' => 'string',
393                ],
394                'id' => [
395                  'location' => 'query',
396                  'type' => 'string',
397                  'repeated' => true,
398                ],
399                'mine' => [
400                  'location' => 'query',
401                  'type' => 'boolean',
402                ],
403                'onBehalfOfContentOwner' => [
404                  'location' => 'query',
405                  'type' => 'string',
406                ],
407              ],
408            ],'update' => [
409              'path' => 'youtube/v3/channelSections',
410              'httpMethod' => 'PUT',
411              'parameters' => [
412                'part' => [
413                  'location' => 'query',
414                  'type' => 'string',
415                  'repeated' => true,
416                  'required' => true,
417                ],
418                'onBehalfOfContentOwner' => [
419                  'location' => 'query',
420                  'type' => 'string',
421                ],
422              ],
423            ],
424          ]
425        ]
426    );
427    $this->channels = new YouTube\Resource\Channels(
428        $this,
429        $this->serviceName,
430        'channels',
431        [
432          'methods' => [
433            'list' => [
434              'path' => 'youtube/v3/channels',
435              'httpMethod' => 'GET',
436              'parameters' => [
437                'part' => [
438                  'location' => 'query',
439                  'type' => 'string',
440                  'repeated' => true,
441                  'required' => true,
442                ],
443                'categoryId' => [
444                  'location' => 'query',
445                  'type' => 'string',
446                ],
447                'forUsername' => [
448                  'location' => 'query',
449                  'type' => 'string',
450                ],
451                'hl' => [
452                  'location' => 'query',
453                  'type' => 'string',
454                ],
455                'id' => [
456                  'location' => 'query',
457                  'type' => 'string',
458                  'repeated' => true,
459                ],
460                'managedByMe' => [
461                  'location' => 'query',
462                  'type' => 'boolean',
463                ],
464                'maxResults' => [
465                  'location' => 'query',
466                  'type' => 'integer',
467                ],
468                'mine' => [
469                  'location' => 'query',
470                  'type' => 'boolean',
471                ],
472                'mySubscribers' => [
473                  'location' => 'query',
474                  'type' => 'boolean',
475                ],
476                'onBehalfOfContentOwner' => [
477                  'location' => 'query',
478                  'type' => 'string',
479                ],
480                'pageToken' => [
481                  'location' => 'query',
482                  'type' => 'string',
483                ],
484              ],
485            ],'update' => [
486              'path' => 'youtube/v3/channels',
487              'httpMethod' => 'PUT',
488              'parameters' => [
489                'part' => [
490                  'location' => 'query',
491                  'type' => 'string',
492                  'repeated' => true,
493                  'required' => true,
494                ],
495                'onBehalfOfContentOwner' => [
496                  'location' => 'query',
497                  'type' => 'string',
498                ],
499              ],
500            ],
501          ]
502        ]
503    );
504    $this->commentThreads = new YouTube\Resource\CommentThreads(
505        $this,
506        $this->serviceName,
507        'commentThreads',
508        [
509          'methods' => [
510            'insert' => [
511              'path' => 'youtube/v3/commentThreads',
512              'httpMethod' => 'POST',
513              'parameters' => [
514                'part' => [
515                  'location' => 'query',
516                  'type' => 'string',
517                  'repeated' => true,
518                  'required' => true,
519                ],
520              ],
521            ],'list' => [
522              'path' => 'youtube/v3/commentThreads',
523              'httpMethod' => 'GET',
524              'parameters' => [
525                'part' => [
526                  'location' => 'query',
527                  'type' => 'string',
528                  'repeated' => true,
529                  'required' => true,
530                ],
531                'allThreadsRelatedToChannelId' => [
532                  'location' => 'query',
533                  'type' => 'string',
534                ],
535                'channelId' => [
536                  'location' => 'query',
537                  'type' => 'string',
538                ],
539                'id' => [
540                  'location' => 'query',
541                  'type' => 'string',
542                  'repeated' => true,
543                ],
544                'maxResults' => [
545                  'location' => 'query',
546                  'type' => 'integer',
547                ],
548                'moderationStatus' => [
549                  'location' => 'query',
550                  'type' => 'string',
551                ],
552                'order' => [
553                  'location' => 'query',
554                  'type' => 'string',
555                ],
556                'pageToken' => [
557                  'location' => 'query',
558                  'type' => 'string',
559                ],
560                'searchTerms' => [
561                  'location' => 'query',
562                  'type' => 'string',
563                ],
564                'textFormat' => [
565                  'location' => 'query',
566                  'type' => 'string',
567                ],
568                'videoId' => [
569                  'location' => 'query',
570                  'type' => 'string',
571                ],
572              ],
573            ],
574          ]
575        ]
576    );
577    $this->comments = new YouTube\Resource\Comments(
578        $this,
579        $this->serviceName,
580        'comments',
581        [
582          'methods' => [
583            'delete' => [
584              'path' => 'youtube/v3/comments',
585              'httpMethod' => 'DELETE',
586              'parameters' => [
587                'id' => [
588                  'location' => 'query',
589                  'type' => 'string',
590                  'required' => true,
591                ],
592              ],
593            ],'insert' => [
594              'path' => 'youtube/v3/comments',
595              'httpMethod' => 'POST',
596              'parameters' => [
597                'part' => [
598                  'location' => 'query',
599                  'type' => 'string',
600                  'repeated' => true,
601                  'required' => true,
602                ],
603              ],
604            ],'list' => [
605              'path' => 'youtube/v3/comments',
606              'httpMethod' => 'GET',
607              'parameters' => [
608                'part' => [
609                  'location' => 'query',
610                  'type' => 'string',
611                  'repeated' => true,
612                  'required' => true,
613                ],
614                'id' => [
615                  'location' => 'query',
616                  'type' => 'string',
617                  'repeated' => true,
618                ],
619                'maxResults' => [
620                  'location' => 'query',
621                  'type' => 'integer',
622                ],
623                'pageToken' => [
624                  'location' => 'query',
625                  'type' => 'string',
626                ],
627                'parentId' => [
628                  'location' => 'query',
629                  'type' => 'string',
630                ],
631                'textFormat' => [
632                  'location' => 'query',
633                  'type' => 'string',
634                ],
635              ],
636            ],'markAsSpam' => [
637              'path' => 'youtube/v3/comments/markAsSpam',
638              'httpMethod' => 'POST',
639              'parameters' => [
640                'id' => [
641                  'location' => 'query',
642                  'type' => 'string',
643                  'repeated' => true,
644                  'required' => true,
645                ],
646              ],
647            ],'setModerationStatus' => [
648              'path' => 'youtube/v3/comments/setModerationStatus',
649              'httpMethod' => 'POST',
650              'parameters' => [
651                'id' => [
652                  'location' => 'query',
653                  'type' => 'string',
654                  'repeated' => true,
655                  'required' => true,
656                ],
657                'moderationStatus' => [
658                  'location' => 'query',
659                  'type' => 'string',
660                  'required' => true,
661                ],
662                'banAuthor' => [
663                  'location' => 'query',
664                  'type' => 'boolean',
665                ],
666              ],
667            ],'update' => [
668              'path' => 'youtube/v3/comments',
669              'httpMethod' => 'PUT',
670              'parameters' => [
671                'part' => [
672                  'location' => 'query',
673                  'type' => 'string',
674                  'repeated' => true,
675                  'required' => true,
676                ],
677              ],
678            ],
679          ]
680        ]
681    );
682    $this->i18nLanguages = new YouTube\Resource\I18nLanguages(
683        $this,
684        $this->serviceName,
685        'i18nLanguages',
686        [
687          'methods' => [
688            'list' => [
689              'path' => 'youtube/v3/i18nLanguages',
690              'httpMethod' => 'GET',
691              'parameters' => [
692                'part' => [
693                  'location' => 'query',
694                  'type' => 'string',
695                  'repeated' => true,
696                  'required' => true,
697                ],
698                'hl' => [
699                  'location' => 'query',
700                  'type' => 'string',
701                ],
702              ],
703            ],
704          ]
705        ]
706    );
707    $this->i18nRegions = new YouTube\Resource\I18nRegions(
708        $this,
709        $this->serviceName,
710        'i18nRegions',
711        [
712          'methods' => [
713            'list' => [
714              'path' => 'youtube/v3/i18nRegions',
715              'httpMethod' => 'GET',
716              'parameters' => [
717                'part' => [
718                  'location' => 'query',
719                  'type' => 'string',
720                  'repeated' => true,
721                  'required' => true,
722                ],
723                'hl' => [
724                  'location' => 'query',
725                  'type' => 'string',
726                ],
727              ],
728            ],
729          ]
730        ]
731    );
732    $this->liveBroadcasts = new YouTube\Resource\LiveBroadcasts(
733        $this,
734        $this->serviceName,
735        'liveBroadcasts',
736        [
737          'methods' => [
738            'bind' => [
739              'path' => 'youtube/v3/liveBroadcasts/bind',
740              'httpMethod' => 'POST',
741              'parameters' => [
742                'id' => [
743                  'location' => 'query',
744                  'type' => 'string',
745                  'required' => true,
746                ],
747                'part' => [
748                  'location' => 'query',
749                  'type' => 'string',
750                  'repeated' => true,
751                  'required' => true,
752                ],
753                'onBehalfOfContentOwner' => [
754                  'location' => 'query',
755                  'type' => 'string',
756                ],
757                'onBehalfOfContentOwnerChannel' => [
758                  'location' => 'query',
759                  'type' => 'string',
760                ],
761                'streamId' => [
762                  'location' => 'query',
763                  'type' => 'string',
764                ],
765              ],
766            ],'delete' => [
767              'path' => 'youtube/v3/liveBroadcasts',
768              'httpMethod' => 'DELETE',
769              'parameters' => [
770                'id' => [
771                  'location' => 'query',
772                  'type' => 'string',
773                  'required' => true,
774                ],
775                'onBehalfOfContentOwner' => [
776                  'location' => 'query',
777                  'type' => 'string',
778                ],
779                'onBehalfOfContentOwnerChannel' => [
780                  'location' => 'query',
781                  'type' => 'string',
782                ],
783              ],
784            ],'insert' => [
785              'path' => 'youtube/v3/liveBroadcasts',
786              'httpMethod' => 'POST',
787              'parameters' => [
788                'part' => [
789                  'location' => 'query',
790                  'type' => 'string',
791                  'repeated' => true,
792                  'required' => true,
793                ],
794                'onBehalfOfContentOwner' => [
795                  'location' => 'query',
796                  'type' => 'string',
797                ],
798                'onBehalfOfContentOwnerChannel' => [
799                  'location' => 'query',
800                  'type' => 'string',
801                ],
802              ],
803            ],'list' => [
804              'path' => 'youtube/v3/liveBroadcasts',
805              'httpMethod' => 'GET',
806              'parameters' => [
807                'part' => [
808                  'location' => 'query',
809                  'type' => 'string',
810                  'repeated' => true,
811                  'required' => true,
812                ],
813                'broadcastStatus' => [
814                  'location' => 'query',
815                  'type' => 'string',
816                ],
817                'broadcastType' => [
818                  'location' => 'query',
819                  'type' => 'string',
820                ],
821                'id' => [
822                  'location' => 'query',
823                  'type' => 'string',
824                  'repeated' => true,
825                ],
826                'maxResults' => [
827                  'location' => 'query',
828                  'type' => 'integer',
829                ],
830                'mine' => [
831                  'location' => 'query',
832                  'type' => 'boolean',
833                ],
834                'onBehalfOfContentOwner' => [
835                  'location' => 'query',
836                  'type' => 'string',
837                ],
838                'onBehalfOfContentOwnerChannel' => [
839                  'location' => 'query',
840                  'type' => 'string',
841                ],
842                'pageToken' => [
843                  'location' => 'query',
844                  'type' => 'string',
845                ],
846              ],
847            ],'transition' => [
848              'path' => 'youtube/v3/liveBroadcasts/transition',
849              'httpMethod' => 'POST',
850              'parameters' => [
851                'broadcastStatus' => [
852                  'location' => 'query',
853                  'type' => 'string',
854                  'required' => true,
855                ],
856                'id' => [
857                  'location' => 'query',
858                  'type' => 'string',
859                  'required' => true,
860                ],
861                'part' => [
862                  'location' => 'query',
863                  'type' => 'string',
864                  'repeated' => true,
865                  'required' => true,
866                ],
867                'onBehalfOfContentOwner' => [
868                  'location' => 'query',
869                  'type' => 'string',
870                ],
871                'onBehalfOfContentOwnerChannel' => [
872                  'location' => 'query',
873                  'type' => 'string',
874                ],
875              ],
876            ],'update' => [
877              'path' => 'youtube/v3/liveBroadcasts',
878              'httpMethod' => 'PUT',
879              'parameters' => [
880                'part' => [
881                  'location' => 'query',
882                  'type' => 'string',
883                  'repeated' => true,
884                  'required' => true,
885                ],
886                'onBehalfOfContentOwner' => [
887                  'location' => 'query',
888                  'type' => 'string',
889                ],
890                'onBehalfOfContentOwnerChannel' => [
891                  'location' => 'query',
892                  'type' => 'string',
893                ],
894              ],
895            ],
896          ]
897        ]
898    );
899    $this->liveChatBans = new YouTube\Resource\LiveChatBans(
900        $this,
901        $this->serviceName,
902        'liveChatBans',
903        [
904          'methods' => [
905            'delete' => [
906              'path' => 'youtube/v3/liveChat/bans',
907              'httpMethod' => 'DELETE',
908              'parameters' => [
909                'id' => [
910                  'location' => 'query',
911                  'type' => 'string',
912                  'required' => true,
913                ],
914              ],
915            ],'insert' => [
916              'path' => 'youtube/v3/liveChat/bans',
917              'httpMethod' => 'POST',
918              'parameters' => [
919                'part' => [
920                  'location' => 'query',
921                  'type' => 'string',
922                  'repeated' => true,
923                  'required' => true,
924                ],
925              ],
926            ],
927          ]
928        ]
929    );
930    $this->liveChatMessages = new YouTube\Resource\LiveChatMessages(
931        $this,
932        $this->serviceName,
933        'liveChatMessages',
934        [
935          'methods' => [
936            'delete' => [
937              'path' => 'youtube/v3/liveChat/messages',
938              'httpMethod' => 'DELETE',
939              'parameters' => [
940                'id' => [
941                  'location' => 'query',
942                  'type' => 'string',
943                  'required' => true,
944                ],
945              ],
946            ],'insert' => [
947              'path' => 'youtube/v3/liveChat/messages',
948              'httpMethod' => 'POST',
949              'parameters' => [
950                'part' => [
951                  'location' => 'query',
952                  'type' => 'string',
953                  'repeated' => true,
954                  'required' => true,
955                ],
956              ],
957            ],'list' => [
958              'path' => 'youtube/v3/liveChat/messages',
959              'httpMethod' => 'GET',
960              'parameters' => [
961                'liveChatId' => [
962                  'location' => 'query',
963                  'type' => 'string',
964                  'required' => true,
965                ],
966                'part' => [
967                  'location' => 'query',
968                  'type' => 'string',
969                  'repeated' => true,
970                  'required' => true,
971                ],
972                'hl' => [
973                  'location' => 'query',
974                  'type' => 'string',
975                ],
976                'maxResults' => [
977                  'location' => 'query',
978                  'type' => 'integer',
979                ],
980                'pageToken' => [
981                  'location' => 'query',
982                  'type' => 'string',
983                ],
984                'profileImageSize' => [
985                  'location' => 'query',
986                  'type' => 'integer',
987                ],
988              ],
989            ],
990          ]
991        ]
992    );
993    $this->liveChatModerators = new YouTube\Resource\LiveChatModerators(
994        $this,
995        $this->serviceName,
996        'liveChatModerators',
997        [
998          'methods' => [
999            'delete' => [
1000              'path' => 'youtube/v3/liveChat/moderators',
1001              'httpMethod' => 'DELETE',
1002              'parameters' => [
1003                'id' => [
1004                  'location' => 'query',
1005                  'type' => 'string',
1006                  'required' => true,
1007                ],
1008              ],
1009            ],'insert' => [
1010              'path' => 'youtube/v3/liveChat/moderators',
1011              'httpMethod' => 'POST',
1012              'parameters' => [
1013                'part' => [
1014                  'location' => 'query',
1015                  'type' => 'string',
1016                  'repeated' => true,
1017                  'required' => true,
1018                ],
1019              ],
1020            ],'list' => [
1021              'path' => 'youtube/v3/liveChat/moderators',
1022              'httpMethod' => 'GET',
1023              'parameters' => [
1024                'liveChatId' => [
1025                  'location' => 'query',
1026                  'type' => 'string',
1027                  'required' => true,
1028                ],
1029                'part' => [
1030                  'location' => 'query',
1031                  'type' => 'string',
1032                  'repeated' => true,
1033                  'required' => true,
1034                ],
1035                'maxResults' => [
1036                  'location' => 'query',
1037                  'type' => 'integer',
1038                ],
1039                'pageToken' => [
1040                  'location' => 'query',
1041                  'type' => 'string',
1042                ],
1043              ],
1044            ],
1045          ]
1046        ]
1047    );
1048    $this->liveStreams = new YouTube\Resource\LiveStreams(
1049        $this,
1050        $this->serviceName,
1051        'liveStreams',
1052        [
1053          'methods' => [
1054            'delete' => [
1055              'path' => 'youtube/v3/liveStreams',
1056              'httpMethod' => 'DELETE',
1057              'parameters' => [
1058                'id' => [
1059                  'location' => 'query',
1060                  'type' => 'string',
1061                  'required' => true,
1062                ],
1063                'onBehalfOfContentOwner' => [
1064                  'location' => 'query',
1065                  'type' => 'string',
1066                ],
1067                'onBehalfOfContentOwnerChannel' => [
1068                  'location' => 'query',
1069                  'type' => 'string',
1070                ],
1071              ],
1072            ],'insert' => [
1073              'path' => 'youtube/v3/liveStreams',
1074              'httpMethod' => 'POST',
1075              'parameters' => [
1076                'part' => [
1077                  'location' => 'query',
1078                  'type' => 'string',
1079                  'repeated' => true,
1080                  'required' => true,
1081                ],
1082                'onBehalfOfContentOwner' => [
1083                  'location' => 'query',
1084                  'type' => 'string',
1085                ],
1086                'onBehalfOfContentOwnerChannel' => [
1087                  'location' => 'query',
1088                  'type' => 'string',
1089                ],
1090              ],
1091            ],'list' => [
1092              'path' => 'youtube/v3/liveStreams',
1093              'httpMethod' => 'GET',
1094              'parameters' => [
1095                'part' => [
1096                  'location' => 'query',
1097                  'type' => 'string',
1098                  'repeated' => true,
1099                  'required' => true,
1100                ],
1101                'id' => [
1102                  'location' => 'query',
1103                  'type' => 'string',
1104                  'repeated' => true,
1105                ],
1106                'maxResults' => [
1107                  'location' => 'query',
1108                  'type' => 'integer',
1109                ],
1110                'mine' => [
1111                  'location' => 'query',
1112                  'type' => 'boolean',
1113                ],
1114                'onBehalfOfContentOwner' => [
1115                  'location' => 'query',
1116                  'type' => 'string',
1117                ],
1118                'onBehalfOfContentOwnerChannel' => [
1119                  'location' => 'query',
1120                  'type' => 'string',
1121                ],
1122                'pageToken' => [
1123                  'location' => 'query',
1124                  'type' => 'string',
1125                ],
1126              ],
1127            ],'update' => [
1128              'path' => 'youtube/v3/liveStreams',
1129              'httpMethod' => 'PUT',
1130              'parameters' => [
1131                'part' => [
1132                  'location' => 'query',
1133                  'type' => 'string',
1134                  'repeated' => true,
1135                  'required' => true,
1136                ],
1137                'onBehalfOfContentOwner' => [
1138                  'location' => 'query',
1139                  'type' => 'string',
1140                ],
1141                'onBehalfOfContentOwnerChannel' => [
1142                  'location' => 'query',
1143                  'type' => 'string',
1144                ],
1145              ],
1146            ],
1147          ]
1148        ]
1149    );
1150    $this->members = new YouTube\Resource\Members(
1151        $this,
1152        $this->serviceName,
1153        'members',
1154        [
1155          'methods' => [
1156            'list' => [
1157              'path' => 'youtube/v3/members',
1158              'httpMethod' => 'GET',
1159              'parameters' => [
1160                'part' => [
1161                  'location' => 'query',
1162                  'type' => 'string',
1163                  'repeated' => true,
1164                  'required' => true,
1165                ],
1166                'filterByMemberChannelId' => [
1167                  'location' => 'query',
1168                  'type' => 'string',
1169                ],
1170                'hasAccessToLevel' => [
1171                  'location' => 'query',
1172                  'type' => 'string',
1173                ],
1174                'maxResults' => [
1175                  'location' => 'query',
1176                  'type' => 'integer',
1177                ],
1178                'mode' => [
1179                  'location' => 'query',
1180                  'type' => 'string',
1181                ],
1182                'pageToken' => [
1183                  'location' => 'query',
1184                  'type' => 'string',
1185                ],
1186              ],
1187            ],
1188          ]
1189        ]
1190    );
1191    $this->membershipsLevels = new YouTube\Resource\MembershipsLevels(
1192        $this,
1193        $this->serviceName,
1194        'membershipsLevels',
1195        [
1196          'methods' => [
1197            'list' => [
1198              'path' => 'youtube/v3/membershipsLevels',
1199              'httpMethod' => 'GET',
1200              'parameters' => [
1201                'part' => [
1202                  'location' => 'query',
1203                  'type' => 'string',
1204                  'repeated' => true,
1205                  'required' => true,
1206                ],
1207              ],
1208            ],
1209          ]
1210        ]
1211    );
1212    $this->playlistItems = new YouTube\Resource\PlaylistItems(
1213        $this,
1214        $this->serviceName,
1215        'playlistItems',
1216        [
1217          'methods' => [
1218            'delete' => [
1219              'path' => 'youtube/v3/playlistItems',
1220              'httpMethod' => 'DELETE',
1221              'parameters' => [
1222                'id' => [
1223                  'location' => 'query',
1224                  'type' => 'string',
1225                  'required' => true,
1226                ],
1227                'onBehalfOfContentOwner' => [
1228                  'location' => 'query',
1229                  'type' => 'string',
1230                ],
1231              ],
1232            ],'insert' => [
1233              'path' => 'youtube/v3/playlistItems',
1234              'httpMethod' => 'POST',
1235              'parameters' => [
1236                'part' => [
1237                  'location' => 'query',
1238                  'type' => 'string',
1239                  'repeated' => true,
1240                  'required' => true,
1241                ],
1242                'onBehalfOfContentOwner' => [
1243                  'location' => 'query',
1244                  'type' => 'string',
1245                ],
1246              ],
1247            ],'list' => [
1248              'path' => 'youtube/v3/playlistItems',
1249              'httpMethod' => 'GET',
1250              'parameters' => [
1251                'part' => [
1252                  'location' => 'query',
1253                  'type' => 'string',
1254                  'repeated' => true,
1255                  'required' => true,
1256                ],
1257                'id' => [
1258                  'location' => 'query',
1259                  'type' => 'string',
1260                  'repeated' => true,
1261                ],
1262                'maxResults' => [
1263                  'location' => 'query',
1264                  'type' => 'integer',
1265                ],
1266                'onBehalfOfContentOwner' => [
1267                  'location' => 'query',
1268                  'type' => 'string',
1269                ],
1270                'pageToken' => [
1271                  'location' => 'query',
1272                  'type' => 'string',
1273                ],
1274                'playlistId' => [
1275                  'location' => 'query',
1276                  'type' => 'string',
1277                ],
1278                'videoId' => [
1279                  'location' => 'query',
1280                  'type' => 'string',
1281                ],
1282              ],
1283            ],'update' => [
1284              'path' => 'youtube/v3/playlistItems',
1285              'httpMethod' => 'PUT',
1286              'parameters' => [
1287                'part' => [
1288                  'location' => 'query',
1289                  'type' => 'string',
1290                  'repeated' => true,
1291                  'required' => true,
1292                ],
1293                'onBehalfOfContentOwner' => [
1294                  'location' => 'query',
1295                  'type' => 'string',
1296                ],
1297              ],
1298            ],
1299          ]
1300        ]
1301    );
1302    $this->playlists = new YouTube\Resource\Playlists(
1303        $this,
1304        $this->serviceName,
1305        'playlists',
1306        [
1307          'methods' => [
1308            'delete' => [
1309              'path' => 'youtube/v3/playlists',
1310              'httpMethod' => 'DELETE',
1311              'parameters' => [
1312                'id' => [
1313                  'location' => 'query',
1314                  'type' => 'string',
1315                  'required' => true,
1316                ],
1317                'onBehalfOfContentOwner' => [
1318                  'location' => 'query',
1319                  'type' => 'string',
1320                ],
1321              ],
1322            ],'insert' => [
1323              'path' => 'youtube/v3/playlists',
1324              'httpMethod' => 'POST',
1325              'parameters' => [
1326                'part' => [
1327                  'location' => 'query',
1328                  'type' => 'string',
1329                  'repeated' => true,
1330                  'required' => true,
1331                ],
1332                'onBehalfOfContentOwner' => [
1333                  'location' => 'query',
1334                  'type' => 'string',
1335                ],
1336                'onBehalfOfContentOwnerChannel' => [
1337                  'location' => 'query',
1338                  'type' => 'string',
1339                ],
1340              ],
1341            ],'list' => [
1342              'path' => 'youtube/v3/playlists',
1343              'httpMethod' => 'GET',
1344              'parameters' => [
1345                'part' => [
1346                  'location' => 'query',
1347                  'type' => 'string',
1348                  'repeated' => true,
1349                  'required' => true,
1350                ],
1351                'channelId' => [
1352                  'location' => 'query',
1353                  'type' => 'string',
1354                ],
1355                'hl' => [
1356                  'location' => 'query',
1357                  'type' => 'string',
1358                ],
1359                'id' => [
1360                  'location' => 'query',
1361                  'type' => 'string',
1362                  'repeated' => true,
1363                ],
1364                'maxResults' => [
1365                  'location' => 'query',
1366                  'type' => 'integer',
1367                ],
1368                'mine' => [
1369                  'location' => 'query',
1370                  'type' => 'boolean',
1371                ],
1372                'onBehalfOfContentOwner' => [
1373                  'location' => 'query',
1374                  'type' => 'string',
1375                ],
1376                'onBehalfOfContentOwnerChannel' => [
1377                  'location' => 'query',
1378                  'type' => 'string',
1379                ],
1380                'pageToken' => [
1381                  'location' => 'query',
1382                  'type' => 'string',
1383                ],
1384              ],
1385            ],'update' => [
1386              'path' => 'youtube/v3/playlists',
1387              'httpMethod' => 'PUT',
1388              'parameters' => [
1389                'part' => [
1390                  'location' => 'query',
1391                  'type' => 'string',
1392                  'repeated' => true,
1393                  'required' => true,
1394                ],
1395                'onBehalfOfContentOwner' => [
1396                  'location' => 'query',
1397                  'type' => 'string',
1398                ],
1399              ],
1400            ],
1401          ]
1402        ]
1403    );
1404    $this->search = new YouTube\Resource\Search(
1405        $this,
1406        $this->serviceName,
1407        'search',
1408        [
1409          'methods' => [
1410            'list' => [
1411              'path' => 'youtube/v3/search',
1412              'httpMethod' => 'GET',
1413              'parameters' => [
1414                'part' => [
1415                  'location' => 'query',
1416                  'type' => 'string',
1417                  'repeated' => true,
1418                  'required' => true,
1419                ],
1420                'channelId' => [
1421                  'location' => 'query',
1422                  'type' => 'string',
1423                ],
1424                'channelType' => [
1425                  'location' => 'query',
1426                  'type' => 'string',
1427                ],
1428                'eventType' => [
1429                  'location' => 'query',
1430                  'type' => 'string',
1431                ],
1432                'forContentOwner' => [
1433                  'location' => 'query',
1434                  'type' => 'boolean',
1435                ],
1436                'forDeveloper' => [
1437                  'location' => 'query',
1438                  'type' => 'boolean',
1439                ],
1440                'forMine' => [
1441                  'location' => 'query',
1442                  'type' => 'boolean',
1443                ],
1444                'location' => [
1445                  'location' => 'query',
1446                  'type' => 'string',
1447                ],
1448                'locationRadius' => [
1449                  'location' => 'query',
1450                  'type' => 'string',
1451                ],
1452                'maxResults' => [
1453                  'location' => 'query',
1454                  'type' => 'integer',
1455                ],
1456                'onBehalfOfContentOwner' => [
1457                  'location' => 'query',
1458                  'type' => 'string',
1459                ],
1460                'order' => [
1461                  'location' => 'query',
1462                  'type' => 'string',
1463                ],
1464                'pageToken' => [
1465                  'location' => 'query',
1466                  'type' => 'string',
1467                ],
1468                'publishedAfter' => [
1469                  'location' => 'query',
1470                  'type' => 'string',
1471                ],
1472                'publishedBefore' => [
1473                  'location' => 'query',
1474                  'type' => 'string',
1475                ],
1476                'q' => [
1477                  'location' => 'query',
1478                  'type' => 'string',
1479                ],
1480                'regionCode' => [
1481                  'location' => 'query',
1482                  'type' => 'string',
1483                ],
1484                'relatedToVideoId' => [
1485                  'location' => 'query',
1486                  'type' => 'string',
1487                ],
1488                'relevanceLanguage' => [
1489                  'location' => 'query',
1490                  'type' => 'string',
1491                ],
1492                'safeSearch' => [
1493                  'location' => 'query',
1494                  'type' => 'string',
1495                ],
1496                'topicId' => [
1497                  'location' => 'query',
1498                  'type' => 'string',
1499                ],
1500                'type' => [
1501                  'location' => 'query',
1502                  'type' => 'string',
1503                  'repeated' => true,
1504                ],
1505                'videoCaption' => [
1506                  'location' => 'query',
1507                  'type' => 'string',
1508                ],
1509                'videoCategoryId' => [
1510                  'location' => 'query',
1511                  'type' => 'string',
1512                ],
1513                'videoDefinition' => [
1514                  'location' => 'query',
1515                  'type' => 'string',
1516                ],
1517                'videoDimension' => [
1518                  'location' => 'query',
1519                  'type' => 'string',
1520                ],
1521                'videoDuration' => [
1522                  'location' => 'query',
1523                  'type' => 'string',
1524                ],
1525                'videoEmbeddable' => [
1526                  'location' => 'query',
1527                  'type' => 'string',
1528                ],
1529                'videoLicense' => [
1530                  'location' => 'query',
1531                  'type' => 'string',
1532                ],
1533                'videoSyndicated' => [
1534                  'location' => 'query',
1535                  'type' => 'string',
1536                ],
1537                'videoType' => [
1538                  'location' => 'query',
1539                  'type' => 'string',
1540                ],
1541              ],
1542            ],
1543          ]
1544        ]
1545    );
1546    $this->subscriptions = new YouTube\Resource\Subscriptions(
1547        $this,
1548        $this->serviceName,
1549        'subscriptions',
1550        [
1551          'methods' => [
1552            'delete' => [
1553              'path' => 'youtube/v3/subscriptions',
1554              'httpMethod' => 'DELETE',
1555              'parameters' => [
1556                'id' => [
1557                  'location' => 'query',
1558                  'type' => 'string',
1559                  'required' => true,
1560                ],
1561              ],
1562            ],'insert' => [
1563              'path' => 'youtube/v3/subscriptions',
1564              'httpMethod' => 'POST',
1565              'parameters' => [
1566                'part' => [
1567                  'location' => 'query',
1568                  'type' => 'string',
1569                  'repeated' => true,
1570                  'required' => true,
1571                ],
1572              ],
1573            ],'list' => [
1574              'path' => 'youtube/v3/subscriptions',
1575              'httpMethod' => 'GET',
1576              'parameters' => [
1577                'part' => [
1578                  'location' => 'query',
1579                  'type' => 'string',
1580                  'repeated' => true,
1581                  'required' => true,
1582                ],
1583                'channelId' => [
1584                  'location' => 'query',
1585                  'type' => 'string',
1586                ],
1587                'forChannelId' => [
1588                  'location' => 'query',
1589                  'type' => 'string',
1590                ],
1591                'id' => [
1592                  'location' => 'query',
1593                  'type' => 'string',
1594                  'repeated' => true,
1595                ],
1596                'maxResults' => [
1597                  'location' => 'query',
1598                  'type' => 'integer',
1599                ],
1600                'mine' => [
1601                  'location' => 'query',
1602                  'type' => 'boolean',
1603                ],
1604                'myRecentSubscribers' => [
1605                  'location' => 'query',
1606                  'type' => 'boolean',
1607                ],
1608                'mySubscribers' => [
1609                  'location' => 'query',
1610                  'type' => 'boolean',
1611                ],
1612                'onBehalfOfContentOwner' => [
1613                  'location' => 'query',
1614                  'type' => 'string',
1615                ],
1616                'onBehalfOfContentOwnerChannel' => [
1617                  'location' => 'query',
1618                  'type' => 'string',
1619                ],
1620                'order' => [
1621                  'location' => 'query',
1622                  'type' => 'string',
1623                ],
1624                'pageToken' => [
1625                  'location' => 'query',
1626                  'type' => 'string',
1627                ],
1628              ],
1629            ],
1630          ]
1631        ]
1632    );
1633    $this->superChatEvents = new YouTube\Resource\SuperChatEvents(
1634        $this,
1635        $this->serviceName,
1636        'superChatEvents',
1637        [
1638          'methods' => [
1639            'list' => [
1640              'path' => 'youtube/v3/superChatEvents',
1641              'httpMethod' => 'GET',
1642              'parameters' => [
1643                'part' => [
1644                  'location' => 'query',
1645                  'type' => 'string',
1646                  'repeated' => true,
1647                  'required' => true,
1648                ],
1649                'hl' => [
1650                  'location' => 'query',
1651                  'type' => 'string',
1652                ],
1653                'maxResults' => [
1654                  'location' => 'query',
1655                  'type' => 'integer',
1656                ],
1657                'pageToken' => [
1658                  'location' => 'query',
1659                  'type' => 'string',
1660                ],
1661              ],
1662            ],
1663          ]
1664        ]
1665    );
1666    $this->tests = new YouTube\Resource\Tests(
1667        $this,
1668        $this->serviceName,
1669        'tests',
1670        [
1671          'methods' => [
1672            'insert' => [
1673              'path' => 'youtube/v3/tests',
1674              'httpMethod' => 'POST',
1675              'parameters' => [
1676                'part' => [
1677                  'location' => 'query',
1678                  'type' => 'string',
1679                  'repeated' => true,
1680                  'required' => true,
1681                ],
1682                'externalChannelId' => [
1683                  'location' => 'query',
1684                  'type' => 'string',
1685                ],
1686              ],
1687            ],
1688          ]
1689        ]
1690    );
1691    $this->thirdPartyLinks = new YouTube\Resource\ThirdPartyLinks(
1692        $this,
1693        $this->serviceName,
1694        'thirdPartyLinks',
1695        [
1696          'methods' => [
1697            'delete' => [
1698              'path' => 'youtube/v3/thirdPartyLinks',
1699              'httpMethod' => 'DELETE',
1700              'parameters' => [
1701                'linkingToken' => [
1702                  'location' => 'query',
1703                  'type' => 'string',
1704                  'required' => true,
1705                ],
1706                'type' => [
1707                  'location' => 'query',
1708                  'type' => 'string',
1709                  'required' => true,
1710                ],
1711                'externalChannelId' => [
1712                  'location' => 'query',
1713                  'type' => 'string',
1714                ],
1715                'part' => [
1716                  'location' => 'query',
1717                  'type' => 'string',
1718                  'repeated' => true,
1719                ],
1720              ],
1721            ],'insert' => [
1722              'path' => 'youtube/v3/thirdPartyLinks',
1723              'httpMethod' => 'POST',
1724              'parameters' => [
1725                'part' => [
1726                  'location' => 'query',
1727                  'type' => 'string',
1728                  'repeated' => true,
1729                  'required' => true,
1730                ],
1731                'externalChannelId' => [
1732                  'location' => 'query',
1733                  'type' => 'string',
1734                ],
1735              ],
1736            ],'list' => [
1737              'path' => 'youtube/v3/thirdPartyLinks',
1738              'httpMethod' => 'GET',
1739              'parameters' => [
1740                'part' => [
1741                  'location' => 'query',
1742                  'type' => 'string',
1743                  'repeated' => true,
1744                  'required' => true,
1745                ],
1746                'externalChannelId' => [
1747                  'location' => 'query',
1748                  'type' => 'string',
1749                ],
1750                'linkingToken' => [
1751                  'location' => 'query',
1752                  'type' => 'string',
1753                ],
1754                'type' => [
1755                  'location' => 'query',
1756                  'type' => 'string',
1757                ],
1758              ],
1759            ],'update' => [
1760              'path' => 'youtube/v3/thirdPartyLinks',
1761              'httpMethod' => 'PUT',
1762              'parameters' => [
1763                'part' => [
1764                  'location' => 'query',
1765                  'type' => 'string',
1766                  'repeated' => true,
1767                  'required' => true,
1768                ],
1769                'externalChannelId' => [
1770                  'location' => 'query',
1771                  'type' => 'string',
1772                ],
1773              ],
1774            ],
1775          ]
1776        ]
1777    );
1778    $this->thumbnails = new YouTube\Resource\Thumbnails(
1779        $this,
1780        $this->serviceName,
1781        'thumbnails',
1782        [
1783          'methods' => [
1784            'set' => [
1785              'path' => 'youtube/v3/thumbnails/set',
1786              'httpMethod' => 'POST',
1787              'parameters' => [
1788                'videoId' => [
1789                  'location' => 'query',
1790                  'type' => 'string',
1791                  'required' => true,
1792                ],
1793                'onBehalfOfContentOwner' => [
1794                  'location' => 'query',
1795                  'type' => 'string',
1796                ],
1797              ],
1798            ],
1799          ]
1800        ]
1801    );
1802    $this->videoAbuseReportReasons = new YouTube\Resource\VideoAbuseReportReasons(
1803        $this,
1804        $this->serviceName,
1805        'videoAbuseReportReasons',
1806        [
1807          'methods' => [
1808            'list' => [
1809              'path' => 'youtube/v3/videoAbuseReportReasons',
1810              'httpMethod' => 'GET',
1811              'parameters' => [
1812                'part' => [
1813                  'location' => 'query',
1814                  'type' => 'string',
1815                  'repeated' => true,
1816                  'required' => true,
1817                ],
1818                'hl' => [
1819                  'location' => 'query',
1820                  'type' => 'string',
1821                ],
1822              ],
1823            ],
1824          ]
1825        ]
1826    );
1827    $this->videoCategories = new YouTube\Resource\VideoCategories(
1828        $this,
1829        $this->serviceName,
1830        'videoCategories',
1831        [
1832          'methods' => [
1833            'list' => [
1834              'path' => 'youtube/v3/videoCategories',
1835              'httpMethod' => 'GET',
1836              'parameters' => [
1837                'part' => [
1838                  'location' => 'query',
1839                  'type' => 'string',
1840                  'repeated' => true,
1841                  'required' => true,
1842                ],
1843                'hl' => [
1844                  'location' => 'query',
1845                  'type' => 'string',
1846                ],
1847                'id' => [
1848                  'location' => 'query',
1849                  'type' => 'string',
1850                  'repeated' => true,
1851                ],
1852                'regionCode' => [
1853                  'location' => 'query',
1854                  'type' => 'string',
1855                ],
1856              ],
1857            ],
1858          ]
1859        ]
1860    );
1861    $this->videos = new YouTube\Resource\Videos(
1862        $this,
1863        $this->serviceName,
1864        'videos',
1865        [
1866          'methods' => [
1867            'delete' => [
1868              'path' => 'youtube/v3/videos',
1869              'httpMethod' => 'DELETE',
1870              'parameters' => [
1871                'id' => [
1872                  'location' => 'query',
1873                  'type' => 'string',
1874                  'required' => true,
1875                ],
1876                'onBehalfOfContentOwner' => [
1877                  'location' => 'query',
1878                  'type' => 'string',
1879                ],
1880              ],
1881            ],'getRating' => [
1882              'path' => 'youtube/v3/videos/getRating',
1883              'httpMethod' => 'GET',
1884              'parameters' => [
1885                'id' => [
1886                  'location' => 'query',
1887                  'type' => 'string',
1888                  'repeated' => true,
1889                  'required' => true,
1890                ],
1891                'onBehalfOfContentOwner' => [
1892                  'location' => 'query',
1893                  'type' => 'string',
1894                ],
1895              ],
1896            ],'insert' => [
1897              'path' => 'youtube/v3/videos',
1898              'httpMethod' => 'POST',
1899              'parameters' => [
1900                'part' => [
1901                  'location' => 'query',
1902                  'type' => 'string',
1903                  'repeated' => true,
1904                  'required' => true,
1905                ],
1906                'autoLevels' => [
1907                  'location' => 'query',
1908                  'type' => 'boolean',
1909                ],
1910                'notifySubscribers' => [
1911                  'location' => 'query',
1912                  'type' => 'boolean',
1913                ],
1914                'onBehalfOfContentOwner' => [
1915                  'location' => 'query',
1916                  'type' => 'string',
1917                ],
1918                'onBehalfOfContentOwnerChannel' => [
1919                  'location' => 'query',
1920                  'type' => 'string',
1921                ],
1922                'stabilize' => [
1923                  'location' => 'query',
1924                  'type' => 'boolean',
1925                ],
1926              ],
1927            ],'list' => [
1928              'path' => 'youtube/v3/videos',
1929              'httpMethod' => 'GET',
1930              'parameters' => [
1931                'part' => [
1932                  'location' => 'query',
1933                  'type' => 'string',
1934                  'repeated' => true,
1935                  'required' => true,
1936                ],
1937                'chart' => [
1938                  'location' => 'query',
1939                  'type' => 'string',
1940                ],
1941                'hl' => [
1942                  'location' => 'query',
1943                  'type' => 'string',
1944                ],
1945                'id' => [
1946                  'location' => 'query',
1947                  'type' => 'string',
1948                  'repeated' => true,
1949                ],
1950                'locale' => [
1951                  'location' => 'query',
1952                  'type' => 'string',
1953                ],
1954                'maxHeight' => [
1955                  'location' => 'query',
1956                  'type' => 'integer',
1957                ],
1958                'maxResults' => [
1959                  'location' => 'query',
1960                  'type' => 'integer',
1961                ],
1962                'maxWidth' => [
1963                  'location' => 'query',
1964                  'type' => 'integer',
1965                ],
1966                'myRating' => [
1967                  'location' => 'query',
1968                  'type' => 'string',
1969                ],
1970                'onBehalfOfContentOwner' => [
1971                  'location' => 'query',
1972                  'type' => 'string',
1973                ],
1974                'pageToken' => [
1975                  'location' => 'query',
1976                  'type' => 'string',
1977                ],
1978                'regionCode' => [
1979                  'location' => 'query',
1980                  'type' => 'string',
1981                ],
1982                'videoCategoryId' => [
1983                  'location' => 'query',
1984                  'type' => 'string',
1985                ],
1986              ],
1987            ],'rate' => [
1988              'path' => 'youtube/v3/videos/rate',
1989              'httpMethod' => 'POST',
1990              'parameters' => [
1991                'id' => [
1992                  'location' => 'query',
1993                  'type' => 'string',
1994                  'required' => true,
1995                ],
1996                'rating' => [
1997                  'location' => 'query',
1998                  'type' => 'string',
1999                  'required' => true,
2000                ],
2001              ],
2002            ],'reportAbuse' => [
2003              'path' => 'youtube/v3/videos/reportAbuse',
2004              'httpMethod' => 'POST',
2005              'parameters' => [
2006                'onBehalfOfContentOwner' => [
2007                  'location' => 'query',
2008                  'type' => 'string',
2009                ],
2010              ],
2011            ],'update' => [
2012              'path' => 'youtube/v3/videos',
2013              'httpMethod' => 'PUT',
2014              'parameters' => [
2015                'part' => [
2016                  'location' => 'query',
2017                  'type' => 'string',
2018                  'repeated' => true,
2019                  'required' => true,
2020                ],
2021                'onBehalfOfContentOwner' => [
2022                  'location' => 'query',
2023                  'type' => 'string',
2024                ],
2025              ],
2026            ],
2027          ]
2028        ]
2029    );
2030    $this->watermarks = new YouTube\Resource\Watermarks(
2031        $this,
2032        $this->serviceName,
2033        'watermarks',
2034        [
2035          'methods' => [
2036            'set' => [
2037              'path' => 'youtube/v3/watermarks/set',
2038              'httpMethod' => 'POST',
2039              'parameters' => [
2040                'channelId' => [
2041                  'location' => 'query',
2042                  'type' => 'string',
2043                  'required' => true,
2044                ],
2045                'onBehalfOfContentOwner' => [
2046                  'location' => 'query',
2047                  'type' => 'string',
2048                ],
2049              ],
2050            ],'unset' => [
2051              'path' => 'youtube/v3/watermarks/unset',
2052              'httpMethod' => 'POST',
2053              'parameters' => [
2054                'channelId' => [
2055                  'location' => 'query',
2056                  'type' => 'string',
2057                  'required' => true,
2058                ],
2059                'onBehalfOfContentOwner' => [
2060                  'location' => 'query',
2061                  'type' => 'string',
2062                ],
2063              ],
2064            ],
2065          ]
2066        ]
2067    );
2068    $this->youtube_v3 = new YouTube\Resource\YoutubeV3(
2069        $this,
2070        $this->serviceName,
2071        'v3',
2072        [
2073          'methods' => [
2074            'updateCommentThreads' => [
2075              'path' => 'youtube/v3/commentThreads',
2076              'httpMethod' => 'PUT',
2077              'parameters' => [
2078                'part' => [
2079                  'location' => 'query',
2080                  'type' => 'string',
2081                  'repeated' => true,
2082                ],
2083              ],
2084            ],
2085          ]
2086        ]
2087    );
2088  }
2089}
2090
2091// Adding a class alias for backwards compatibility with the previous class name.
2092class_alias(YouTube::class, 'Google_Service_YouTube');
2093