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 Books (v1).
24 *
25 * <p>
26 * The Google Books API allows clients to access the Google Books repository.</p>
27 *
28 * <p>
29 * For more information about this service, see the API
30 * <a href="https://code.google.com/apis/books/docs/v1/getting_started.html" target="_blank">Documentation</a>
31 * </p>
32 *
33 * @author Google, Inc.
34 */
35class Books extends \Google\Service
36{
37  /** Manage your books. */
38  const BOOKS =
39      "https://www.googleapis.com/auth/books";
40
41  public $bookshelves;
42  public $bookshelves_volumes;
43  public $cloudloading;
44  public $dictionary;
45  public $familysharing;
46  public $layers;
47  public $layers_annotationData;
48  public $layers_volumeAnnotations;
49  public $myconfig;
50  public $mylibrary_annotations;
51  public $mylibrary_bookshelves;
52  public $mylibrary_bookshelves_volumes;
53  public $mylibrary_readingpositions;
54  public $notification;
55  public $onboarding;
56  public $personalizedstream;
57  public $promooffer;
58  public $series;
59  public $series_membership;
60  public $volumes;
61  public $volumes_associated;
62  public $volumes_mybooks;
63  public $volumes_recommended;
64  public $volumes_useruploaded;
65
66  /**
67   * Constructs the internal representation of the Books 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://books.googleapis.com/';
77    $this->servicePath = '';
78    $this->batchPath = 'batch';
79    $this->version = 'v1';
80    $this->serviceName = 'books';
81
82    $this->bookshelves = new Books\Resource\Bookshelves(
83        $this,
84        $this->serviceName,
85        'bookshelves',
86        [
87          'methods' => [
88            'get' => [
89              'path' => 'books/v1/users/{userId}/bookshelves/{shelf}',
90              'httpMethod' => 'GET',
91              'parameters' => [
92                'userId' => [
93                  'location' => 'path',
94                  'type' => 'string',
95                  'required' => true,
96                ],
97                'shelf' => [
98                  'location' => 'path',
99                  'type' => 'string',
100                  'required' => true,
101                ],
102                'source' => [
103                  'location' => 'query',
104                  'type' => 'string',
105                ],
106              ],
107            ],'list' => [
108              'path' => 'books/v1/users/{userId}/bookshelves',
109              'httpMethod' => 'GET',
110              'parameters' => [
111                'userId' => [
112                  'location' => 'path',
113                  'type' => 'string',
114                  'required' => true,
115                ],
116                'source' => [
117                  'location' => 'query',
118                  'type' => 'string',
119                ],
120              ],
121            ],
122          ]
123        ]
124    );
125    $this->bookshelves_volumes = new Books\Resource\BookshelvesVolumes(
126        $this,
127        $this->serviceName,
128        'volumes',
129        [
130          'methods' => [
131            'list' => [
132              'path' => 'books/v1/users/{userId}/bookshelves/{shelf}/volumes',
133              'httpMethod' => 'GET',
134              'parameters' => [
135                'userId' => [
136                  'location' => 'path',
137                  'type' => 'string',
138                  'required' => true,
139                ],
140                'shelf' => [
141                  'location' => 'path',
142                  'type' => 'string',
143                  'required' => true,
144                ],
145                'maxResults' => [
146                  'location' => 'query',
147                  'type' => 'integer',
148                ],
149                'showPreorders' => [
150                  'location' => 'query',
151                  'type' => 'boolean',
152                ],
153                'source' => [
154                  'location' => 'query',
155                  'type' => 'string',
156                ],
157                'startIndex' => [
158                  'location' => 'query',
159                  'type' => 'integer',
160                ],
161              ],
162            ],
163          ]
164        ]
165    );
166    $this->cloudloading = new Books\Resource\Cloudloading(
167        $this,
168        $this->serviceName,
169        'cloudloading',
170        [
171          'methods' => [
172            'addBook' => [
173              'path' => 'books/v1/cloudloading/addBook',
174              'httpMethod' => 'POST',
175              'parameters' => [
176                'drive_document_id' => [
177                  'location' => 'query',
178                  'type' => 'string',
179                ],
180                'mime_type' => [
181                  'location' => 'query',
182                  'type' => 'string',
183                ],
184                'name' => [
185                  'location' => 'query',
186                  'type' => 'string',
187                ],
188                'upload_client_token' => [
189                  'location' => 'query',
190                  'type' => 'string',
191                ],
192              ],
193            ],'deleteBook' => [
194              'path' => 'books/v1/cloudloading/deleteBook',
195              'httpMethod' => 'POST',
196              'parameters' => [
197                'volumeId' => [
198                  'location' => 'query',
199                  'type' => 'string',
200                  'required' => true,
201                ],
202              ],
203            ],'updateBook' => [
204              'path' => 'books/v1/cloudloading/updateBook',
205              'httpMethod' => 'POST',
206              'parameters' => [],
207            ],
208          ]
209        ]
210    );
211    $this->dictionary = new Books\Resource\Dictionary(
212        $this,
213        $this->serviceName,
214        'dictionary',
215        [
216          'methods' => [
217            'listOfflineMetadata' => [
218              'path' => 'books/v1/dictionary/listOfflineMetadata',
219              'httpMethod' => 'GET',
220              'parameters' => [
221                'cpksver' => [
222                  'location' => 'query',
223                  'type' => 'string',
224                  'required' => true,
225                ],
226              ],
227            ],
228          ]
229        ]
230    );
231    $this->familysharing = new Books\Resource\Familysharing(
232        $this,
233        $this->serviceName,
234        'familysharing',
235        [
236          'methods' => [
237            'getFamilyInfo' => [
238              'path' => 'books/v1/familysharing/getFamilyInfo',
239              'httpMethod' => 'GET',
240              'parameters' => [
241                'source' => [
242                  'location' => 'query',
243                  'type' => 'string',
244                ],
245              ],
246            ],'share' => [
247              'path' => 'books/v1/familysharing/share',
248              'httpMethod' => 'POST',
249              'parameters' => [
250                'docId' => [
251                  'location' => 'query',
252                  'type' => 'string',
253                ],
254                'source' => [
255                  'location' => 'query',
256                  'type' => 'string',
257                ],
258                'volumeId' => [
259                  'location' => 'query',
260                  'type' => 'string',
261                ],
262              ],
263            ],'unshare' => [
264              'path' => 'books/v1/familysharing/unshare',
265              'httpMethod' => 'POST',
266              'parameters' => [
267                'docId' => [
268                  'location' => 'query',
269                  'type' => 'string',
270                ],
271                'source' => [
272                  'location' => 'query',
273                  'type' => 'string',
274                ],
275                'volumeId' => [
276                  'location' => 'query',
277                  'type' => 'string',
278                ],
279              ],
280            ],
281          ]
282        ]
283    );
284    $this->layers = new Books\Resource\Layers(
285        $this,
286        $this->serviceName,
287        'layers',
288        [
289          'methods' => [
290            'get' => [
291              'path' => 'books/v1/volumes/{volumeId}/layersummary/{summaryId}',
292              'httpMethod' => 'GET',
293              'parameters' => [
294                'volumeId' => [
295                  'location' => 'path',
296                  'type' => 'string',
297                  'required' => true,
298                ],
299                'summaryId' => [
300                  'location' => 'path',
301                  'type' => 'string',
302                  'required' => true,
303                ],
304                'contentVersion' => [
305                  'location' => 'query',
306                  'type' => 'string',
307                ],
308                'source' => [
309                  'location' => 'query',
310                  'type' => 'string',
311                ],
312              ],
313            ],'list' => [
314              'path' => 'books/v1/volumes/{volumeId}/layersummary',
315              'httpMethod' => 'GET',
316              'parameters' => [
317                'volumeId' => [
318                  'location' => 'path',
319                  'type' => 'string',
320                  'required' => true,
321                ],
322                'contentVersion' => [
323                  'location' => 'query',
324                  'type' => 'string',
325                ],
326                'maxResults' => [
327                  'location' => 'query',
328                  'type' => 'integer',
329                ],
330                'pageToken' => [
331                  'location' => 'query',
332                  'type' => 'string',
333                ],
334                'source' => [
335                  'location' => 'query',
336                  'type' => 'string',
337                ],
338              ],
339            ],
340          ]
341        ]
342    );
343    $this->layers_annotationData = new Books\Resource\LayersAnnotationData(
344        $this,
345        $this->serviceName,
346        'annotationData',
347        [
348          'methods' => [
349            'get' => [
350              'path' => 'books/v1/volumes/{volumeId}/layers/{layerId}/data/{annotationDataId}',
351              'httpMethod' => 'GET',
352              'parameters' => [
353                'volumeId' => [
354                  'location' => 'path',
355                  'type' => 'string',
356                  'required' => true,
357                ],
358                'layerId' => [
359                  'location' => 'path',
360                  'type' => 'string',
361                  'required' => true,
362                ],
363                'annotationDataId' => [
364                  'location' => 'path',
365                  'type' => 'string',
366                  'required' => true,
367                ],
368                'contentVersion' => [
369                  'location' => 'query',
370                  'type' => 'string',
371                  'required' => true,
372                ],
373                'allowWebDefinitions' => [
374                  'location' => 'query',
375                  'type' => 'boolean',
376                ],
377                'h' => [
378                  'location' => 'query',
379                  'type' => 'integer',
380                ],
381                'locale' => [
382                  'location' => 'query',
383                  'type' => 'string',
384                ],
385                'scale' => [
386                  'location' => 'query',
387                  'type' => 'integer',
388                ],
389                'source' => [
390                  'location' => 'query',
391                  'type' => 'string',
392                ],
393                'w' => [
394                  'location' => 'query',
395                  'type' => 'integer',
396                ],
397              ],
398            ],'list' => [
399              'path' => 'books/v1/volumes/{volumeId}/layers/{layerId}/data',
400              'httpMethod' => 'GET',
401              'parameters' => [
402                'volumeId' => [
403                  'location' => 'path',
404                  'type' => 'string',
405                  'required' => true,
406                ],
407                'layerId' => [
408                  'location' => 'path',
409                  'type' => 'string',
410                  'required' => true,
411                ],
412                'contentVersion' => [
413                  'location' => 'query',
414                  'type' => 'string',
415                  'required' => true,
416                ],
417                'annotationDataId' => [
418                  'location' => 'query',
419                  'type' => 'string',
420                  'repeated' => true,
421                ],
422                'h' => [
423                  'location' => 'query',
424                  'type' => 'integer',
425                ],
426                'locale' => [
427                  'location' => 'query',
428                  'type' => 'string',
429                ],
430                'maxResults' => [
431                  'location' => 'query',
432                  'type' => 'integer',
433                ],
434                'pageToken' => [
435                  'location' => 'query',
436                  'type' => 'string',
437                ],
438                'scale' => [
439                  'location' => 'query',
440                  'type' => 'integer',
441                ],
442                'source' => [
443                  'location' => 'query',
444                  'type' => 'string',
445                ],
446                'updatedMax' => [
447                  'location' => 'query',
448                  'type' => 'string',
449                ],
450                'updatedMin' => [
451                  'location' => 'query',
452                  'type' => 'string',
453                ],
454                'w' => [
455                  'location' => 'query',
456                  'type' => 'integer',
457                ],
458              ],
459            ],
460          ]
461        ]
462    );
463    $this->layers_volumeAnnotations = new Books\Resource\LayersVolumeAnnotations(
464        $this,
465        $this->serviceName,
466        'volumeAnnotations',
467        [
468          'methods' => [
469            'get' => [
470              'path' => 'books/v1/volumes/{volumeId}/layers/{layerId}/annotations/{annotationId}',
471              'httpMethod' => 'GET',
472              'parameters' => [
473                'volumeId' => [
474                  'location' => 'path',
475                  'type' => 'string',
476                  'required' => true,
477                ],
478                'layerId' => [
479                  'location' => 'path',
480                  'type' => 'string',
481                  'required' => true,
482                ],
483                'annotationId' => [
484                  'location' => 'path',
485                  'type' => 'string',
486                  'required' => true,
487                ],
488                'locale' => [
489                  'location' => 'query',
490                  'type' => 'string',
491                ],
492                'source' => [
493                  'location' => 'query',
494                  'type' => 'string',
495                ],
496              ],
497            ],'list' => [
498              'path' => 'books/v1/volumes/{volumeId}/layers/{layerId}',
499              'httpMethod' => 'GET',
500              'parameters' => [
501                'volumeId' => [
502                  'location' => 'path',
503                  'type' => 'string',
504                  'required' => true,
505                ],
506                'layerId' => [
507                  'location' => 'path',
508                  'type' => 'string',
509                  'required' => true,
510                ],
511                'contentVersion' => [
512                  'location' => 'query',
513                  'type' => 'string',
514                  'required' => true,
515                ],
516                'endOffset' => [
517                  'location' => 'query',
518                  'type' => 'string',
519                ],
520                'endPosition' => [
521                  'location' => 'query',
522                  'type' => 'string',
523                ],
524                'locale' => [
525                  'location' => 'query',
526                  'type' => 'string',
527                ],
528                'maxResults' => [
529                  'location' => 'query',
530                  'type' => 'integer',
531                ],
532                'pageToken' => [
533                  'location' => 'query',
534                  'type' => 'string',
535                ],
536                'showDeleted' => [
537                  'location' => 'query',
538                  'type' => 'boolean',
539                ],
540                'source' => [
541                  'location' => 'query',
542                  'type' => 'string',
543                ],
544                'startOffset' => [
545                  'location' => 'query',
546                  'type' => 'string',
547                ],
548                'startPosition' => [
549                  'location' => 'query',
550                  'type' => 'string',
551                ],
552                'updatedMax' => [
553                  'location' => 'query',
554                  'type' => 'string',
555                ],
556                'updatedMin' => [
557                  'location' => 'query',
558                  'type' => 'string',
559                ],
560                'volumeAnnotationsVersion' => [
561                  'location' => 'query',
562                  'type' => 'string',
563                ],
564              ],
565            ],
566          ]
567        ]
568    );
569    $this->myconfig = new Books\Resource\Myconfig(
570        $this,
571        $this->serviceName,
572        'myconfig',
573        [
574          'methods' => [
575            'getUserSettings' => [
576              'path' => 'books/v1/myconfig/getUserSettings',
577              'httpMethod' => 'GET',
578              'parameters' => [
579                'country' => [
580                  'location' => 'query',
581                  'type' => 'string',
582                ],
583              ],
584            ],'releaseDownloadAccess' => [
585              'path' => 'books/v1/myconfig/releaseDownloadAccess',
586              'httpMethod' => 'POST',
587              'parameters' => [
588                'cpksver' => [
589                  'location' => 'query',
590                  'type' => 'string',
591                  'required' => true,
592                ],
593                'volumeIds' => [
594                  'location' => 'query',
595                  'type' => 'string',
596                  'repeated' => true,
597                  'required' => true,
598                ],
599                'locale' => [
600                  'location' => 'query',
601                  'type' => 'string',
602                ],
603                'source' => [
604                  'location' => 'query',
605                  'type' => 'string',
606                ],
607              ],
608            ],'requestAccess' => [
609              'path' => 'books/v1/myconfig/requestAccess',
610              'httpMethod' => 'POST',
611              'parameters' => [
612                'cpksver' => [
613                  'location' => 'query',
614                  'type' => 'string',
615                  'required' => true,
616                ],
617                'nonce' => [
618                  'location' => 'query',
619                  'type' => 'string',
620                  'required' => true,
621                ],
622                'source' => [
623                  'location' => 'query',
624                  'type' => 'string',
625                  'required' => true,
626                ],
627                'volumeId' => [
628                  'location' => 'query',
629                  'type' => 'string',
630                  'required' => true,
631                ],
632                'licenseTypes' => [
633                  'location' => 'query',
634                  'type' => 'string',
635                ],
636                'locale' => [
637                  'location' => 'query',
638                  'type' => 'string',
639                ],
640              ],
641            ],'syncVolumeLicenses' => [
642              'path' => 'books/v1/myconfig/syncVolumeLicenses',
643              'httpMethod' => 'POST',
644              'parameters' => [
645                'cpksver' => [
646                  'location' => 'query',
647                  'type' => 'string',
648                  'required' => true,
649                ],
650                'nonce' => [
651                  'location' => 'query',
652                  'type' => 'string',
653                  'required' => true,
654                ],
655                'source' => [
656                  'location' => 'query',
657                  'type' => 'string',
658                  'required' => true,
659                ],
660                'features' => [
661                  'location' => 'query',
662                  'type' => 'string',
663                  'repeated' => true,
664                ],
665                'includeNonComicsSeries' => [
666                  'location' => 'query',
667                  'type' => 'boolean',
668                ],
669                'locale' => [
670                  'location' => 'query',
671                  'type' => 'string',
672                ],
673                'showPreorders' => [
674                  'location' => 'query',
675                  'type' => 'boolean',
676                ],
677                'volumeIds' => [
678                  'location' => 'query',
679                  'type' => 'string',
680                  'repeated' => true,
681                ],
682              ],
683            ],'updateUserSettings' => [
684              'path' => 'books/v1/myconfig/updateUserSettings',
685              'httpMethod' => 'POST',
686              'parameters' => [],
687            ],
688          ]
689        ]
690    );
691    $this->mylibrary_annotations = new Books\Resource\MylibraryAnnotations(
692        $this,
693        $this->serviceName,
694        'annotations',
695        [
696          'methods' => [
697            'delete' => [
698              'path' => 'books/v1/mylibrary/annotations/{annotationId}',
699              'httpMethod' => 'DELETE',
700              'parameters' => [
701                'annotationId' => [
702                  'location' => 'path',
703                  'type' => 'string',
704                  'required' => true,
705                ],
706                'source' => [
707                  'location' => 'query',
708                  'type' => 'string',
709                ],
710              ],
711            ],'insert' => [
712              'path' => 'books/v1/mylibrary/annotations',
713              'httpMethod' => 'POST',
714              'parameters' => [
715                'annotationId' => [
716                  'location' => 'query',
717                  'type' => 'string',
718                ],
719                'country' => [
720                  'location' => 'query',
721                  'type' => 'string',
722                ],
723                'showOnlySummaryInResponse' => [
724                  'location' => 'query',
725                  'type' => 'boolean',
726                ],
727                'source' => [
728                  'location' => 'query',
729                  'type' => 'string',
730                ],
731              ],
732            ],'list' => [
733              'path' => 'books/v1/mylibrary/annotations',
734              'httpMethod' => 'GET',
735              'parameters' => [
736                'contentVersion' => [
737                  'location' => 'query',
738                  'type' => 'string',
739                ],
740                'layerId' => [
741                  'location' => 'query',
742                  'type' => 'string',
743                ],
744                'layerIds' => [
745                  'location' => 'query',
746                  'type' => 'string',
747                  'repeated' => true,
748                ],
749                'maxResults' => [
750                  'location' => 'query',
751                  'type' => 'integer',
752                ],
753                'pageToken' => [
754                  'location' => 'query',
755                  'type' => 'string',
756                ],
757                'showDeleted' => [
758                  'location' => 'query',
759                  'type' => 'boolean',
760                ],
761                'source' => [
762                  'location' => 'query',
763                  'type' => 'string',
764                ],
765                'updatedMax' => [
766                  'location' => 'query',
767                  'type' => 'string',
768                ],
769                'updatedMin' => [
770                  'location' => 'query',
771                  'type' => 'string',
772                ],
773                'volumeId' => [
774                  'location' => 'query',
775                  'type' => 'string',
776                ],
777              ],
778            ],'summary' => [
779              'path' => 'books/v1/mylibrary/annotations/summary',
780              'httpMethod' => 'POST',
781              'parameters' => [
782                'layerIds' => [
783                  'location' => 'query',
784                  'type' => 'string',
785                  'repeated' => true,
786                  'required' => true,
787                ],
788                'volumeId' => [
789                  'location' => 'query',
790                  'type' => 'string',
791                  'required' => true,
792                ],
793              ],
794            ],'update' => [
795              'path' => 'books/v1/mylibrary/annotations/{annotationId}',
796              'httpMethod' => 'PUT',
797              'parameters' => [
798                'annotationId' => [
799                  'location' => 'path',
800                  'type' => 'string',
801                  'required' => true,
802                ],
803                'source' => [
804                  'location' => 'query',
805                  'type' => 'string',
806                ],
807              ],
808            ],
809          ]
810        ]
811    );
812    $this->mylibrary_bookshelves = new Books\Resource\MylibraryBookshelves(
813        $this,
814        $this->serviceName,
815        'bookshelves',
816        [
817          'methods' => [
818            'addVolume' => [
819              'path' => 'books/v1/mylibrary/bookshelves/{shelf}/addVolume',
820              'httpMethod' => 'POST',
821              'parameters' => [
822                'shelf' => [
823                  'location' => 'path',
824                  'type' => 'string',
825                  'required' => true,
826                ],
827                'volumeId' => [
828                  'location' => 'query',
829                  'type' => 'string',
830                  'required' => true,
831                ],
832                'reason' => [
833                  'location' => 'query',
834                  'type' => 'string',
835                ],
836                'source' => [
837                  'location' => 'query',
838                  'type' => 'string',
839                ],
840              ],
841            ],'clearVolumes' => [
842              'path' => 'books/v1/mylibrary/bookshelves/{shelf}/clearVolumes',
843              'httpMethod' => 'POST',
844              'parameters' => [
845                'shelf' => [
846                  'location' => 'path',
847                  'type' => 'string',
848                  'required' => true,
849                ],
850                'source' => [
851                  'location' => 'query',
852                  'type' => 'string',
853                ],
854              ],
855            ],'get' => [
856              'path' => 'books/v1/mylibrary/bookshelves/{shelf}',
857              'httpMethod' => 'GET',
858              'parameters' => [
859                'shelf' => [
860                  'location' => 'path',
861                  'type' => 'string',
862                  'required' => true,
863                ],
864                'source' => [
865                  'location' => 'query',
866                  'type' => 'string',
867                ],
868              ],
869            ],'list' => [
870              'path' => 'books/v1/mylibrary/bookshelves',
871              'httpMethod' => 'GET',
872              'parameters' => [
873                'source' => [
874                  'location' => 'query',
875                  'type' => 'string',
876                ],
877              ],
878            ],'moveVolume' => [
879              'path' => 'books/v1/mylibrary/bookshelves/{shelf}/moveVolume',
880              'httpMethod' => 'POST',
881              'parameters' => [
882                'shelf' => [
883                  'location' => 'path',
884                  'type' => 'string',
885                  'required' => true,
886                ],
887                'volumeId' => [
888                  'location' => 'query',
889                  'type' => 'string',
890                  'required' => true,
891                ],
892                'volumePosition' => [
893                  'location' => 'query',
894                  'type' => 'integer',
895                  'required' => true,
896                ],
897                'source' => [
898                  'location' => 'query',
899                  'type' => 'string',
900                ],
901              ],
902            ],'removeVolume' => [
903              'path' => 'books/v1/mylibrary/bookshelves/{shelf}/removeVolume',
904              'httpMethod' => 'POST',
905              'parameters' => [
906                'shelf' => [
907                  'location' => 'path',
908                  'type' => 'string',
909                  'required' => true,
910                ],
911                'volumeId' => [
912                  'location' => 'query',
913                  'type' => 'string',
914                  'required' => true,
915                ],
916                'reason' => [
917                  'location' => 'query',
918                  'type' => 'string',
919                ],
920                'source' => [
921                  'location' => 'query',
922                  'type' => 'string',
923                ],
924              ],
925            ],
926          ]
927        ]
928    );
929    $this->mylibrary_bookshelves_volumes = new Books\Resource\MylibraryBookshelvesVolumes(
930        $this,
931        $this->serviceName,
932        'volumes',
933        [
934          'methods' => [
935            'list' => [
936              'path' => 'books/v1/mylibrary/bookshelves/{shelf}/volumes',
937              'httpMethod' => 'GET',
938              'parameters' => [
939                'shelf' => [
940                  'location' => 'path',
941                  'type' => 'string',
942                  'required' => true,
943                ],
944                'country' => [
945                  'location' => 'query',
946                  'type' => 'string',
947                ],
948                'maxResults' => [
949                  'location' => 'query',
950                  'type' => 'integer',
951                ],
952                'projection' => [
953                  'location' => 'query',
954                  'type' => 'string',
955                ],
956                'q' => [
957                  'location' => 'query',
958                  'type' => 'string',
959                ],
960                'showPreorders' => [
961                  'location' => 'query',
962                  'type' => 'boolean',
963                ],
964                'source' => [
965                  'location' => 'query',
966                  'type' => 'string',
967                ],
968                'startIndex' => [
969                  'location' => 'query',
970                  'type' => 'integer',
971                ],
972              ],
973            ],
974          ]
975        ]
976    );
977    $this->mylibrary_readingpositions = new Books\Resource\MylibraryReadingpositions(
978        $this,
979        $this->serviceName,
980        'readingpositions',
981        [
982          'methods' => [
983            'get' => [
984              'path' => 'books/v1/mylibrary/readingpositions/{volumeId}',
985              'httpMethod' => 'GET',
986              'parameters' => [
987                'volumeId' => [
988                  'location' => 'path',
989                  'type' => 'string',
990                  'required' => true,
991                ],
992                'contentVersion' => [
993                  'location' => 'query',
994                  'type' => 'string',
995                ],
996                'source' => [
997                  'location' => 'query',
998                  'type' => 'string',
999                ],
1000              ],
1001            ],'setPosition' => [
1002              'path' => 'books/v1/mylibrary/readingpositions/{volumeId}/setPosition',
1003              'httpMethod' => 'POST',
1004              'parameters' => [
1005                'volumeId' => [
1006                  'location' => 'path',
1007                  'type' => 'string',
1008                  'required' => true,
1009                ],
1010                'position' => [
1011                  'location' => 'query',
1012                  'type' => 'string',
1013                  'required' => true,
1014                ],
1015                'timestamp' => [
1016                  'location' => 'query',
1017                  'type' => 'string',
1018                  'required' => true,
1019                ],
1020                'action' => [
1021                  'location' => 'query',
1022                  'type' => 'string',
1023                ],
1024                'contentVersion' => [
1025                  'location' => 'query',
1026                  'type' => 'string',
1027                ],
1028                'deviceCookie' => [
1029                  'location' => 'query',
1030                  'type' => 'string',
1031                ],
1032                'source' => [
1033                  'location' => 'query',
1034                  'type' => 'string',
1035                ],
1036              ],
1037            ],
1038          ]
1039        ]
1040    );
1041    $this->notification = new Books\Resource\Notification(
1042        $this,
1043        $this->serviceName,
1044        'notification',
1045        [
1046          'methods' => [
1047            'get' => [
1048              'path' => 'books/v1/notification/get',
1049              'httpMethod' => 'GET',
1050              'parameters' => [
1051                'notification_id' => [
1052                  'location' => 'query',
1053                  'type' => 'string',
1054                  'required' => true,
1055                ],
1056                'locale' => [
1057                  'location' => 'query',
1058                  'type' => 'string',
1059                ],
1060                'source' => [
1061                  'location' => 'query',
1062                  'type' => 'string',
1063                ],
1064              ],
1065            ],
1066          ]
1067        ]
1068    );
1069    $this->onboarding = new Books\Resource\Onboarding(
1070        $this,
1071        $this->serviceName,
1072        'onboarding',
1073        [
1074          'methods' => [
1075            'listCategories' => [
1076              'path' => 'books/v1/onboarding/listCategories',
1077              'httpMethod' => 'GET',
1078              'parameters' => [
1079                'locale' => [
1080                  'location' => 'query',
1081                  'type' => 'string',
1082                ],
1083              ],
1084            ],'listCategoryVolumes' => [
1085              'path' => 'books/v1/onboarding/listCategoryVolumes',
1086              'httpMethod' => 'GET',
1087              'parameters' => [
1088                'categoryId' => [
1089                  'location' => 'query',
1090                  'type' => 'string',
1091                  'repeated' => true,
1092                ],
1093                'locale' => [
1094                  'location' => 'query',
1095                  'type' => 'string',
1096                ],
1097                'maxAllowedMaturityRating' => [
1098                  'location' => 'query',
1099                  'type' => 'string',
1100                ],
1101                'pageSize' => [
1102                  'location' => 'query',
1103                  'type' => 'integer',
1104                ],
1105                'pageToken' => [
1106                  'location' => 'query',
1107                  'type' => 'string',
1108                ],
1109              ],
1110            ],
1111          ]
1112        ]
1113    );
1114    $this->personalizedstream = new Books\Resource\Personalizedstream(
1115        $this,
1116        $this->serviceName,
1117        'personalizedstream',
1118        [
1119          'methods' => [
1120            'get' => [
1121              'path' => 'books/v1/personalizedstream/get',
1122              'httpMethod' => 'GET',
1123              'parameters' => [
1124                'locale' => [
1125                  'location' => 'query',
1126                  'type' => 'string',
1127                ],
1128                'maxAllowedMaturityRating' => [
1129                  'location' => 'query',
1130                  'type' => 'string',
1131                ],
1132                'source' => [
1133                  'location' => 'query',
1134                  'type' => 'string',
1135                ],
1136              ],
1137            ],
1138          ]
1139        ]
1140    );
1141    $this->promooffer = new Books\Resource\Promooffer(
1142        $this,
1143        $this->serviceName,
1144        'promooffer',
1145        [
1146          'methods' => [
1147            'accept' => [
1148              'path' => 'books/v1/promooffer/accept',
1149              'httpMethod' => 'POST',
1150              'parameters' => [
1151                'androidId' => [
1152                  'location' => 'query',
1153                  'type' => 'string',
1154                ],
1155                'device' => [
1156                  'location' => 'query',
1157                  'type' => 'string',
1158                ],
1159                'manufacturer' => [
1160                  'location' => 'query',
1161                  'type' => 'string',
1162                ],
1163                'model' => [
1164                  'location' => 'query',
1165                  'type' => 'string',
1166                ],
1167                'offerId' => [
1168                  'location' => 'query',
1169                  'type' => 'string',
1170                ],
1171                'product' => [
1172                  'location' => 'query',
1173                  'type' => 'string',
1174                ],
1175                'serial' => [
1176                  'location' => 'query',
1177                  'type' => 'string',
1178                ],
1179                'volumeId' => [
1180                  'location' => 'query',
1181                  'type' => 'string',
1182                ],
1183              ],
1184            ],'dismiss' => [
1185              'path' => 'books/v1/promooffer/dismiss',
1186              'httpMethod' => 'POST',
1187              'parameters' => [
1188                'androidId' => [
1189                  'location' => 'query',
1190                  'type' => 'string',
1191                ],
1192                'device' => [
1193                  'location' => 'query',
1194                  'type' => 'string',
1195                ],
1196                'manufacturer' => [
1197                  'location' => 'query',
1198                  'type' => 'string',
1199                ],
1200                'model' => [
1201                  'location' => 'query',
1202                  'type' => 'string',
1203                ],
1204                'offerId' => [
1205                  'location' => 'query',
1206                  'type' => 'string',
1207                ],
1208                'product' => [
1209                  'location' => 'query',
1210                  'type' => 'string',
1211                ],
1212                'serial' => [
1213                  'location' => 'query',
1214                  'type' => 'string',
1215                ],
1216              ],
1217            ],'get' => [
1218              'path' => 'books/v1/promooffer/get',
1219              'httpMethod' => 'GET',
1220              'parameters' => [
1221                'androidId' => [
1222                  'location' => 'query',
1223                  'type' => 'string',
1224                ],
1225                'device' => [
1226                  'location' => 'query',
1227                  'type' => 'string',
1228                ],
1229                'manufacturer' => [
1230                  'location' => 'query',
1231                  'type' => 'string',
1232                ],
1233                'model' => [
1234                  'location' => 'query',
1235                  'type' => 'string',
1236                ],
1237                'product' => [
1238                  'location' => 'query',
1239                  'type' => 'string',
1240                ],
1241                'serial' => [
1242                  'location' => 'query',
1243                  'type' => 'string',
1244                ],
1245              ],
1246            ],
1247          ]
1248        ]
1249    );
1250    $this->series = new Books\Resource\Series(
1251        $this,
1252        $this->serviceName,
1253        'series',
1254        [
1255          'methods' => [
1256            'get' => [
1257              'path' => 'books/v1/series/get',
1258              'httpMethod' => 'GET',
1259              'parameters' => [
1260                'series_id' => [
1261                  'location' => 'query',
1262                  'type' => 'string',
1263                  'repeated' => true,
1264                  'required' => true,
1265                ],
1266              ],
1267            ],
1268          ]
1269        ]
1270    );
1271    $this->series_membership = new Books\Resource\SeriesMembership(
1272        $this,
1273        $this->serviceName,
1274        'membership',
1275        [
1276          'methods' => [
1277            'get' => [
1278              'path' => 'books/v1/series/membership/get',
1279              'httpMethod' => 'GET',
1280              'parameters' => [
1281                'series_id' => [
1282                  'location' => 'query',
1283                  'type' => 'string',
1284                  'required' => true,
1285                ],
1286                'page_size' => [
1287                  'location' => 'query',
1288                  'type' => 'integer',
1289                ],
1290                'page_token' => [
1291                  'location' => 'query',
1292                  'type' => 'string',
1293                ],
1294              ],
1295            ],
1296          ]
1297        ]
1298    );
1299    $this->volumes = new Books\Resource\Volumes(
1300        $this,
1301        $this->serviceName,
1302        'volumes',
1303        [
1304          'methods' => [
1305            'get' => [
1306              'path' => 'books/v1/volumes/{volumeId}',
1307              'httpMethod' => 'GET',
1308              'parameters' => [
1309                'volumeId' => [
1310                  'location' => 'path',
1311                  'type' => 'string',
1312                  'required' => true,
1313                ],
1314                'country' => [
1315                  'location' => 'query',
1316                  'type' => 'string',
1317                ],
1318                'includeNonComicsSeries' => [
1319                  'location' => 'query',
1320                  'type' => 'boolean',
1321                ],
1322                'partner' => [
1323                  'location' => 'query',
1324                  'type' => 'string',
1325                ],
1326                'projection' => [
1327                  'location' => 'query',
1328                  'type' => 'string',
1329                ],
1330                'source' => [
1331                  'location' => 'query',
1332                  'type' => 'string',
1333                ],
1334                'user_library_consistent_read' => [
1335                  'location' => 'query',
1336                  'type' => 'boolean',
1337                ],
1338              ],
1339            ],'list' => [
1340              'path' => 'books/v1/volumes',
1341              'httpMethod' => 'GET',
1342              'parameters' => [
1343                'q' => [
1344                  'location' => 'query',
1345                  'type' => 'string',
1346                  'required' => true,
1347                ],
1348                'download' => [
1349                  'location' => 'query',
1350                  'type' => 'string',
1351                ],
1352                'filter' => [
1353                  'location' => 'query',
1354                  'type' => 'string',
1355                ],
1356                'langRestrict' => [
1357                  'location' => 'query',
1358                  'type' => 'string',
1359                ],
1360                'libraryRestrict' => [
1361                  'location' => 'query',
1362                  'type' => 'string',
1363                ],
1364                'maxAllowedMaturityRating' => [
1365                  'location' => 'query',
1366                  'type' => 'string',
1367                ],
1368                'maxResults' => [
1369                  'location' => 'query',
1370                  'type' => 'integer',
1371                ],
1372                'orderBy' => [
1373                  'location' => 'query',
1374                  'type' => 'string',
1375                ],
1376                'partner' => [
1377                  'location' => 'query',
1378                  'type' => 'string',
1379                ],
1380                'printType' => [
1381                  'location' => 'query',
1382                  'type' => 'string',
1383                ],
1384                'projection' => [
1385                  'location' => 'query',
1386                  'type' => 'string',
1387                ],
1388                'showPreorders' => [
1389                  'location' => 'query',
1390                  'type' => 'boolean',
1391                ],
1392                'source' => [
1393                  'location' => 'query',
1394                  'type' => 'string',
1395                ],
1396                'startIndex' => [
1397                  'location' => 'query',
1398                  'type' => 'integer',
1399                ],
1400              ],
1401            ],
1402          ]
1403        ]
1404    );
1405    $this->volumes_associated = new Books\Resource\VolumesAssociated(
1406        $this,
1407        $this->serviceName,
1408        'associated',
1409        [
1410          'methods' => [
1411            'list' => [
1412              'path' => 'books/v1/volumes/{volumeId}/associated',
1413              'httpMethod' => 'GET',
1414              'parameters' => [
1415                'volumeId' => [
1416                  'location' => 'path',
1417                  'type' => 'string',
1418                  'required' => true,
1419                ],
1420                'association' => [
1421                  'location' => 'query',
1422                  'type' => 'string',
1423                ],
1424                'locale' => [
1425                  'location' => 'query',
1426                  'type' => 'string',
1427                ],
1428                'maxAllowedMaturityRating' => [
1429                  'location' => 'query',
1430                  'type' => 'string',
1431                ],
1432                'source' => [
1433                  'location' => 'query',
1434                  'type' => 'string',
1435                ],
1436              ],
1437            ],
1438          ]
1439        ]
1440    );
1441    $this->volumes_mybooks = new Books\Resource\VolumesMybooks(
1442        $this,
1443        $this->serviceName,
1444        'mybooks',
1445        [
1446          'methods' => [
1447            'list' => [
1448              'path' => 'books/v1/volumes/mybooks',
1449              'httpMethod' => 'GET',
1450              'parameters' => [
1451                'acquireMethod' => [
1452                  'location' => 'query',
1453                  'type' => 'string',
1454                  'repeated' => true,
1455                ],
1456                'country' => [
1457                  'location' => 'query',
1458                  'type' => 'string',
1459                ],
1460                'locale' => [
1461                  'location' => 'query',
1462                  'type' => 'string',
1463                ],
1464                'maxResults' => [
1465                  'location' => 'query',
1466                  'type' => 'integer',
1467                ],
1468                'processingState' => [
1469                  'location' => 'query',
1470                  'type' => 'string',
1471                  'repeated' => true,
1472                ],
1473                'source' => [
1474                  'location' => 'query',
1475                  'type' => 'string',
1476                ],
1477                'startIndex' => [
1478                  'location' => 'query',
1479                  'type' => 'integer',
1480                ],
1481              ],
1482            ],
1483          ]
1484        ]
1485    );
1486    $this->volumes_recommended = new Books\Resource\VolumesRecommended(
1487        $this,
1488        $this->serviceName,
1489        'recommended',
1490        [
1491          'methods' => [
1492            'list' => [
1493              'path' => 'books/v1/volumes/recommended',
1494              'httpMethod' => 'GET',
1495              'parameters' => [
1496                'locale' => [
1497                  'location' => 'query',
1498                  'type' => 'string',
1499                ],
1500                'maxAllowedMaturityRating' => [
1501                  'location' => 'query',
1502                  'type' => 'string',
1503                ],
1504                'source' => [
1505                  'location' => 'query',
1506                  'type' => 'string',
1507                ],
1508              ],
1509            ],'rate' => [
1510              'path' => 'books/v1/volumes/recommended/rate',
1511              'httpMethod' => 'POST',
1512              'parameters' => [
1513                'rating' => [
1514                  'location' => 'query',
1515                  'type' => 'string',
1516                  'required' => true,
1517                ],
1518                'volumeId' => [
1519                  'location' => 'query',
1520                  'type' => 'string',
1521                  'required' => true,
1522                ],
1523                'locale' => [
1524                  'location' => 'query',
1525                  'type' => 'string',
1526                ],
1527                'source' => [
1528                  'location' => 'query',
1529                  'type' => 'string',
1530                ],
1531              ],
1532            ],
1533          ]
1534        ]
1535    );
1536    $this->volumes_useruploaded = new Books\Resource\VolumesUseruploaded(
1537        $this,
1538        $this->serviceName,
1539        'useruploaded',
1540        [
1541          'methods' => [
1542            'list' => [
1543              'path' => 'books/v1/volumes/useruploaded',
1544              'httpMethod' => 'GET',
1545              'parameters' => [
1546                'locale' => [
1547                  'location' => 'query',
1548                  'type' => 'string',
1549                ],
1550                'maxResults' => [
1551                  'location' => 'query',
1552                  'type' => 'integer',
1553                ],
1554                'processingState' => [
1555                  'location' => 'query',
1556                  'type' => 'string',
1557                  'repeated' => true,
1558                ],
1559                'source' => [
1560                  'location' => 'query',
1561                  'type' => 'string',
1562                ],
1563                'startIndex' => [
1564                  'location' => 'query',
1565                  'type' => 'integer',
1566                ],
1567                'volumeId' => [
1568                  'location' => 'query',
1569                  'type' => 'string',
1570                  'repeated' => true,
1571                ],
1572              ],
1573            ],
1574          ]
1575        ]
1576    );
1577  }
1578}
1579
1580// Adding a class alias for backwards compatibility with the previous class name.
1581class_alias(Books::class, 'Google_Service_Books');
1582